根据 jquery 对象数组中的属性查找元素
Find an element based on attribute in array of jquery objects
我有一个 HTML dom,其中包含三个像这样的 div:
<div data-tab="1">
</div>
<div data-tab="2">
</div>
<div data-tab="3">
</div>
然后我将所有这些 div 收集到一个 jQuery 对象中,如下所示:
var $tabs = jQuery( '*[data-tab]' );
现在,$tabs 包含所有三个。那太棒了。但是,我试图更改其中一个,所以我尝试使用 find() 来查找我想要更改的对象,但不知何故,我无法使用 find() 在 $tabs 中找到任何对象。
示例:
$tabs.find( '*[data-tab="2"]' ); simply returns []
为什么这行不通,或者更好的是,什么行得通? :P
您需要使用 .filter()
函数而不是 .find()
:
$tabs.filter('[data-tab=2]')
window.$tabs = jQuery('*[data-tab]');
var $filteredtabs = $tabs.filter('[data-tab=2]')
console.log($filteredtabs)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div data-tab="1">
</div>
<div data-tab="2">
</div>
<div data-tab="3">
</div>
我有一个 HTML dom,其中包含三个像这样的 div:
<div data-tab="1">
</div>
<div data-tab="2">
</div>
<div data-tab="3">
</div>
然后我将所有这些 div 收集到一个 jQuery 对象中,如下所示:
var $tabs = jQuery( '*[data-tab]' );
现在,$tabs 包含所有三个。那太棒了。但是,我试图更改其中一个,所以我尝试使用 find() 来查找我想要更改的对象,但不知何故,我无法使用 find() 在 $tabs 中找到任何对象。
示例:
$tabs.find( '*[data-tab="2"]' ); simply returns []
为什么这行不通,或者更好的是,什么行得通? :P
您需要使用 .filter()
函数而不是 .find()
:
$tabs.filter('[data-tab=2]')
window.$tabs = jQuery('*[data-tab]');
var $filteredtabs = $tabs.filter('[data-tab=2]')
console.log($filteredtabs)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div data-tab="1">
</div>
<div data-tab="2">
</div>
<div data-tab="3">
</div>