簡體   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