如果我尝试一些像这样的:如何检查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