zjm*_*126 128 javascript jquery dom
var a=$('#start > div:last-child');
var b=$('#start > div.live')[0];
alert(a==b)
alert(a==$(b))
Run Code Online (Sandbox Code Playgroud)
这总是错误的.你如何比较jQuery中的两个元素?
谢谢
e-m*_*tiv 328
为了记录,jQuery有一个is()功能:
a.is(b)
Run Code Online (Sandbox Code Playgroud)
请注意,a它已经是一个jQuery实例.
Dar*_*rov 144
您可以比较DOM元素.请记住,jQuery选择器返回的数组在引用相等的意义上永远不会相等.
假设:
<div id="a" class="a"></div>
Run Code Online (Sandbox Code Playgroud)
这个:
$('div.a')[0] == $('div#a')[0]
Run Code Online (Sandbox Code Playgroud)
返回true.
Anu*_*rag 13
每次调用jQuery()函数时,都会创建并返回一个新对象.因此,即使对相同选择器进行相等检查也会失败.
<div id="a">test</div>
$('#a') == $('#a') // false
Run Code Online (Sandbox Code Playgroud)
生成的jQuery对象包含一个匹配元素的数组,这些元素基本上是本机DOM对象HTMLDivElement,总是引用同一个对象,所以你应该使用数组索引检查它们是否相同,如Darin建议的那样.
$('#a')[0] == $('#a')[0] // true
Run Code Online (Sandbox Code Playgroud)
a.is(b)
Run Code Online (Sandbox Code Playgroud)
and to check if they are not equal use
!a.is(b)
Run Code Online (Sandbox Code Playgroud)
as for
$b = $('#a')
....
$('#a')[0] == $b[0] // not always true
Run Code Online (Sandbox Code Playgroud)
maybe class added to the element or removed from it after the first assignment
| 归档时间: |
|
| 查看次数: |
103443 次 |
| 最近记录: |