JQuery: проверьте, содержит ли объект jQuery (включая) точный элемент DOM

У меня есть ссылка на элемент DOM и объект jQuery, который является результатом селектора, и я хочу проверить, находится ли этот конкретный элемент DOM в этом объекте jQuery. Заканчивая цикл через весь объект jQuery и проверяя на равенство, есть ли простой способ в jQuery сделать это?

Я пробовал .contains, :contains, .has и :has, и ни один из них не выполняет эту работу. Кроме того, я должен упомянуть, что все элементы, с которыми я работаю, находятся на одном уровне дерева DOM, поэтому нет необходимости беспокоиться о родителях/детях.

Ответы

Ответ 1

похож на ответ Gumbos, но более тонкий:

if ( obj.filter(function() { return this == el; }).length ) {
    // obj contains el
}

Ответ 2

$yourJqueryObject.is(yourDomElement)

См. . is() добавлен в 1.6.

Ответ 3

Попробуйте следующее:

var result = $("selector").find("*").filter(function() {
    return this === elem;
}).length === 1;

elem - элемент DOM, который вы ищете.

Ответ 4

Подобно Дэвиду, но даже стройнее:

if ( obj.filter(el).length ) {
    // obj contains el
}

Ответ 5

Своего рода хакерство, но работает для меня:

$.inArray($('#single-element').get(0), $('.many-elements').get()) != -1