如果我嘗試一些像這樣的:如何檢查2個jQuery選擇器是否指向相同的元素?
$(".foo") === $(".foo") // = false
...我得到錯誤的。如果我試試這個查詢,
$(".foo").get(0) === $(".foo").get(0) // = true
......我說的是對的。
這是因爲:
{a:myObject} !== {a:myObject};
[myObject] !== [myObject];
myObject === myObject;
我不知道是否有來測試這種平等,最好是內置到jQuery的任何簡潔的方式。我寫的第二種方法只有在最多有一個匹配.foo
的元素時才能正常工作。該解決方案應適用於任何數量的元素。
顯然我不想檢查".foo" === ".foo"
,因爲我使用的實際選擇比較複雜。這個例子我簡化了它們。 (例如,我可能要檢查$(this)
是選擇同樣的事情$(".foo")
。)
你應該檢查benekastah的答案,這裏是反映他的回答演示:http://jsfiddle.net/kAv4X/ – MacMac 2012-02-22 18:52:50
@lolwut:既然不工作'是( )'只檢查*至少有一個元素匹配另一個選擇器(即它是一個子集)。看看:http://jsfiddle.net/dYAH3/(它應該在第一個提醒中說錯,但它說的是真的)。 – Senseful 2012-02-22 19:01:31
This [answer](http://stackoverflow.com/a/3856290/989121)似乎是最準確的。 – georg 2012-02-22 19:30:41