Кто-либо знает хороший способ протестировать, если один элемент, сохраненный в var, является потомком другого, также сохраненного в var?
Мне не нужно element1.isChildOf('selector')
, это легко.
Мне нужно element1.isChildOf(element2)
element2.find(element1).size() > 0
Кажется, не работает.
Я не хочу должным быть писать плагину использование .each
протестировать каждого ребенка, если я могу избежать его.
Если вы используете 1.4 и ищете потомка , а не ребенка, как предполагает ваш пример find ()
, есть метод has ()
:
element2.has(element1).length > 0
Для этого вы можете использовать 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
}