如何select jQuery 中具有匹配属性的所有元素?
how to select all elements with matching attribute of this in jQuery?
我想 select div 中与 selected 元素具有相同属性的所有元素,使用 this
select或者.
所以在我的示例中,当我单击 class 为 .foo
的元素时,我想找到 .container
中共享相同 [=17] 的所有元素=]属性作为被点击的元素,然后添加.bah
的class。目前我的功能只添加 .bah
到被点击的元素,我知道如何 select 某些属性但不涉及 this
select 或。
Javascript:
$(document).on('click','.foo', function() {
$(this).addClass('bah');
});
HTML:
<div class="container">
<div class="inner1">
<div data-index="0" class="foo">
<p>item 1</p>
</div>
<div data-index="2" class="foo">
<p>item 2</p>
</div>
</div>
<div class="inner2">
<div data-index="0" class="foo">
<p>item 1</p>
</div>
<div data-index="2" class="foo">
<p>item 2</p>
</div>
</div>
</div>
$(document).on('click','.foo', function() {
var dataIndex = $(this).data('index');
$(document).find("div[data-index='" + dataIndex + "']").each(function() {
$(this).addClass('bah');
});
});
示例Fiddle:http://jsfiddle.net/9huw0ym9/1/
您可以使用.filter()
得到结果。
$(document).on('click','.foo', function() {
var dataIndex = $(this).data('index');
$('.container div').filter(function(){
return $(this).data('index') === dataIndex
}).addClass('bah');
});
或者使用基于属性的选择器。
$(document).on('click','.foo', function() {
var dataIndex = $(this).data('index');
$('.container div[data-index="'+dataIndex+'"]').addClass('bah');
});
我想 select div 中与 selected 元素具有相同属性的所有元素,使用 this
select或者.
所以在我的示例中,当我单击 class 为 .foo
的元素时,我想找到 .container
中共享相同 [=17] 的所有元素=]属性作为被点击的元素,然后添加.bah
的class。目前我的功能只添加 .bah
到被点击的元素,我知道如何 select 某些属性但不涉及 this
select 或。
Javascript:
$(document).on('click','.foo', function() {
$(this).addClass('bah');
});
HTML:
<div class="container">
<div class="inner1">
<div data-index="0" class="foo">
<p>item 1</p>
</div>
<div data-index="2" class="foo">
<p>item 2</p>
</div>
</div>
<div class="inner2">
<div data-index="0" class="foo">
<p>item 1</p>
</div>
<div data-index="2" class="foo">
<p>item 2</p>
</div>
</div>
</div>
$(document).on('click','.foo', function() {
var dataIndex = $(this).data('index');
$(document).find("div[data-index='" + dataIndex + "']").each(function() {
$(this).addClass('bah');
});
});
示例Fiddle:http://jsfiddle.net/9huw0ym9/1/
您可以使用.filter()
得到结果。
$(document).on('click','.foo', function() {
var dataIndex = $(this).data('index');
$('.container div').filter(function(){
return $(this).data('index') === dataIndex
}).addClass('bah');
});
或者使用基于属性的选择器。
$(document).on('click','.foo', function() {
var dataIndex = $(this).data('index');
$('.container div[data-index="'+dataIndex+'"]').addClass('bah');
});