var a=$('#start > div:last-child');
var b=$('#start > div.live')[0];
alert(a==b)
alert(a==$(b))
它总是错误的。如何比较jQuery中的两个元素?
谢谢
发布于 2010-03-09 09:21:51
您可以比较DOM元素。请记住,jQuery选择器返回的数组在引用相等的意义上永远不会相等。
假设:
<div id="a" class="a"></div>
这一点:
$('div.a')[0] == $('div#a')[0]
返回true。
发布于 2012-03-08 17:11:21
发布于 2010-03-09 10:46:05
每次调用jQuery()函数时,都会创建并返回一个新对象。因此,即使是相同选择器上的相等性检查也会失败。
<div id="a">test</div>
$('#a') == $('#a') // false
生成的jQuery对象包含一个匹配元素的数组,这些元素基本上都是本地DOM对象,比如HTMLDivElement
,它们总是引用同一个对象,所以您应该按照Darin的建议使用数组索引检查这些元素是否相等。
$('#a')[0] == $('#a')[0] // true
https://stackoverflow.com/questions/2407825
复制