тест jQuery, если element1 является потомком element2

Кто-либо знает хороший способ протестировать, если один элемент, сохраненный в var, является потомком другого, также сохраненного в var?

Мне не нужно element1.isChildOf('selector'), это легко.
Мне нужно element1.isChildOf(element2)

element2.find(element1).size() > 0 Кажется, не работает.

Я не хочу должным быть писать плагину использование .each протестировать каждого ребенка, если я могу избежать его.

41
задан Ed Bayiates 12 September 2012 в 00:46
поделиться

2 ответа

Если вы используете 1.4 и ищете потомка , а не ребенка, как предполагает ваш пример find () , есть метод has () :

element2.has(element1).length > 0
71
ответ дан 27 November 2019 в 00:29
поделиться

Для этого вы можете использовать index () . Он вернет -1, если элемента нет в наборе. Предполагая, что element1 и element2 являются элементами DOM, а не объектами jQuery:

if ($(element2).children().index(element1) != -1) {
  // it's a child
}

Для полноты, чтобы проверить, является ли что-то потомком и не только ребенок, его также можно использовать для этого:

if ($(element1).parents().index(element2) != -1) {
  // element1 is a descendant of element2
}
7
ответ дан 27 November 2019 в 00:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: