[英]Check if element exists in a jQuery collection
可以说我有这个html:
<div class="test"></div>
<div class="test"></div>
<div class="test" id="target"></div>
在我的代码中的某个地方,我称之为:
var $divs = $('.test');
后来,我打电话给:
var $target =$('#target');
现在,我想检查$target
是否在$divs
我希望下面的代码在第3次迭代中为true
,但出现3次false
:
var $divs = $('.test');
var $target =$('#target');
console.log($target);
$divs.each(function(){
console.log($(this));
console.log($(this) == $target); // expected true on 3rd iteration
});
看着控制台。 很明显为什么它返回false。
检查$divs
包含$target
的正确方法是什么?
您的条件返回false
因为一个对象不等于JavaScript中的另一个对象。 举个例子:
$(window) !== $(window)
这是因为每次调用jQuery构造函数都会创建一个新对象。
在您的情况下,如果从集合中获取包装的对象,则条件将对目标元素返回true
:
$target.get(0) === this;
尝试按编号检查
$divs.each(function(){
console.log($(this));
console.log($(this).attr("id") == $target.attr("id"));
});
将console.log($(this) == $target)
更改为此console.log($(this).is($target))
。
要在jquery中共同映射两个对象,请使用(a.is(b))
即(a.is(b))
.is()
函数
var $divs = $('.test');
var $target =$('#target');
console.log($target);
$divs.each(function(){
console.log($(this));
console.log($(this).is($target));
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.