Я хотел бы предложить, учитывая, что гнездишься в <a>
элемента является недействительным, так что может быть только один предком <a>
элемента (или нет предка <a>
элементов, очевидно):
$('.element').click(function(e){
// here we use a terribly-, but meaningfully-, named variable
// to hold the Boolean result of the assessment;
// the assessment looks from the clicked element up through
// the ancestors for the first <a> element matching the
// attribute-starts-with selector ([href^=x])
// this will return either 1 or 0 elements.
// we check the length; if it's equal to 1 then the ancestor
// has an href starting with x, if it's 0 then there is either
// no ancestor <a> element or no ancestor <a> element with a
// href matching the attribute-starts-with selector:
var ancestorAnchorStartsWithX = $(this).closest('a[href^=x]').length === 1;
});
Это стоит упомянуть, как @A. Wolff did, в комментариях ниже, что:
& hellip; closest()
[также проверяет] элемент.
Это означает, что если сам клике элемент соответствует селектор, подаваемое на ближайший (и, следовательно, является <a>
элемент с href
начиная с x
), то оценка возвращает истину, даже если это не является предком элемента. Я считал эту функцию – при записи селектора –, но я забыл подробно, что в самом ответе.
Если это считается ошибкой, то вариант с parents('a[href^=x]')
вместо closest('a[href^=x]')
будет более уместным для вашего прецедента.
Ссылки:
Может включать 'html' на вопрос? – guest271314
@ guest271314 Я не думаю, что это необходимо для решения этой проблемы. –