Ответ 1
похож на ответ Gumbos, но более тонкий:
if ( obj.filter(function() { return this == el; }).length ) {
// obj contains el
}
У меня есть ссылка на элемент DOM и объект jQuery, который является результатом селектора, и я хочу проверить, находится ли этот конкретный элемент DOM в этом объекте jQuery. Заканчивая цикл через весь объект jQuery и проверяя на равенство, есть ли простой способ в jQuery сделать это?
Я пробовал .contains
, :contains
, .has
и :has
, и ни один из них не выполняет эту работу. Кроме того, я должен упомянуть, что все элементы, с которыми я работаю, находятся на одном уровне дерева DOM, поэтому нет необходимости беспокоиться о родителях/детях.
похож на ответ Gumbos, но более тонкий:
if ( obj.filter(function() { return this == el; }).length ) {
// obj contains el
}
$yourJqueryObject.is(yourDomElement)
См. . is() добавлен в 1.6.
Попробуйте следующее:
var result = $("selector").find("*").filter(function() {
return this === elem;
}).length === 1;
elem
- элемент DOM, который вы ищете.
Подобно Дэвиду, но даже стройнее:
if ( obj.filter(el).length ) {
// obj contains el
}
Своего рода хакерство, но работает для меня:
$.inArray($('#single-element').get(0), $('.many-elements').get()) != -1