点击一个元素:
$('.my_list').click(function(){
var selected_object = $(this);
$('.my_list').each(function(){
var current_object = $(this);
if( selected_object == current_object ) alert('FOUND IT !');
});
});
我不知道为什么,但是我没有收到提示信息"FOUND IT !"
您可以使用jQuery.is
函数:
根据选择器、元素、或jQuery对象,如果其中至少有一个元素,则返回true匹配给定的参数。
if (selected_object.is(current_object)) {
...
}
另一种解决方案是使用jQuery.get
函数获取原始元素,并使用==
或===
运算符进行比较:
if (selected_object.get(0) == current_object.get(0)) {
...
}
<<p> jsFiddle演示/strong> 提供了一个很好的答案…但理解为什么不能直接比较jQuery中的选择器是很重要的。
jQuery选择器返回的数据结构在引用相等的意义上永远不会等于。因此,解决这个问题的唯一方法是从jQuery对象中获取DOM引用并比较DOM元素。 对于上面的例子,最简单的DOM引用比较是:selected_object.[0] == current_object.[0]