[英]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.