繁体   English   中英

检查jQuery集合中是否存在元素

[英]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的正确方法是什么?

这是一个jsFiddle

您的条件返回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)); 
    });

的jsfiddle

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM