我正在使用选择器来获取一组对象(0 个或更多):
var $openMenus = $Triggers.filter(".trigger-hover");
然后我有一个事件附加到一个项目,该项目可能位于也可能不位于上面的对象中。在该事件中,我想将触发事件的项目与 c 进行比较
$([selector])
.focus(function(){
var $thisMenu = $(this);
$openMenus.each(function(){
if ($(this) != $thisMenu ){
[do something]
}
})
})
这是行不通的。虽然多个 jQuery 对象可能引用同一个 DOM 对象,但它们实际上是单独的 jQuery 对象,因此永远不会比较 true。
鉴于此,处理这个问题的方法是什么?如何拥有两个 jQuery 对象并比较它们以查看一个 jQuery 对象是否与另一个对象引用相同的 DOM 元素?
我可以为我尝试选择的每个项目提供一个 ID,但我想知道是否有另一种方法可以实现它,而无需向 HTML 添加更多内容。
继 bobince 之后,不使用wrapper[0],而是使用正确的 get(0) 方法返回存储在 jQuery 对象中的第一个元素。
var focused = null;
$(':input').focus( function() {
focused = $(this);
compare($(this));
//Compare them...trivial but will return true despite being different jQuery objects.
}).blur( function() {
focused = null;
});
function compare(element) {
if (element.get(0) === focused.get(0)) {
alert('The same');
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)