13

我有一个对 DOM 元素的引用,以及一个作为选择器结果的 jQuery 对象,我想检查那个特定的 DOM 元素是否在那个 jQuery 对象中。没有循环遍历整个 jQuery 对象并检查是否相等,jQuery 中有没有直接的方法来做到这一点?

我已经尝试过.contains,和:contains,但他们似乎都没有完成这项工作。另外,我应该提到我正在使用的所有元素都在同一个 DOM 树级别上,因此无需担心父母/孩子。.has:has

4

5 回答 5

11
$yourJqueryObject.is(yourDomElement)

请参阅1.6 中添加的.is()

于 2011-05-13T17:33:27.837 回答
9

类似于 Gumbos 的答案,但更苗条:

if ( obj.filter(function() { return this == el; }).length ) {
    // obj contains el
}
于 2010-02-07T21:11:03.563 回答
2

试试这个:

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

elem是您要查找的 DOM 元素。

于 2010-02-07T20:57:14.683 回答
1

类似于大卫的回答,但更苗条:

if ( obj.filter(el).length ) {
    // obj contains el
}
于 2014-06-29T19:22:30.660 回答
0

有点骇人听闻,但对我有用:

$.inArray($('#single-element').get(0), $('.many-elements').get()) != -1
于 2010-02-07T20:59:06.817 回答