2010-02-07 70 views
14

我有一個DOM元素引用,以及一個jQuery對象,它是選擇器的結果,我想檢查該特定DOM元素是否在jQuery對象。通過整個jQuery對象循環和檢查相等性,jQuery中有沒有一種簡單的方法可以做到這一點?jQuery:檢查jQuery對象是否包含(包括)精確的DOM元素

我試過.contains,:contains,.has:has,他們都沒有看起來能夠完成這項工作。另外,我應該提及,我正在使用的所有元素都在同一個DOM樹層次上,所以不需要擔心父母/孩子。

+0

你需要對你所期待的更清晰。你是否在ID上匹配? – 2010-02-07 21:18:19

+0

是的,我應該詳細闡述一下。 1.我沒有與這些元素相關的ID。如果我這樣做會更容易。 2.我的實際問題是確定一個元素是否存在於以前的兄弟姐妹或給定的主元素的下一個兄弟。因此,所有需要父元素的解決方案(如那些使用.find()的解決方案都不適用。 – Suan 2010-02-07 21:57:43

回答

9

類似Gumbos答案,但苗條:

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

試試這個:

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

elem是你正在尋找的DOM元素。

+0

我在找什麼。接受的答案是缺少重要的find(「*」)部分。 – MatteS 2012-10-31 14:02:39

0

均田的hackish,但對我的作品:

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

看到添加1.6 .is()

1

類似大衛的答案,但甚至更薄:

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