jQuery按数据属性值查找元素

时间:2014-02-13 14:18:44

标签: jquery

我有几个元素如下:

<a class="slide-link" href="#" data-slide="0">1</a>
<a class="slide-link" href="#" data-slide="1">2</a>
<a class="slide-link" href="#" data-slide="2">3</a>

如何将一个类添加到data-slide属性值为0(零)的元素中?

我尝试了许多不同的解决方案,但没有任何效果。一个例子:

$('.slide-link').find('[data-slide="0"]').addClass('active');

有什么想法吗?

4 个答案:

答案 0 :(得分:184)

使用Attribute Equals Selector

$('.slide-link[data-slide="0"]').addClass('active');

Fiddle Demo

.find()

它在树下工作

  

获取每个元素的后代    在当前匹配元素集中,由选择器,jQuery对象或元素过滤。

答案 1 :(得分:53)

您也可以使用.filter()

$('.slide-link').filter('[data-slide="0"]').addClass('active');

答案 2 :(得分:3)

我用变量而不是String搜索了一个相同的解决方案。
我希望我可以用我的解决方案帮助某人:)

var numb = "3";
$(`#myid[data-tab-id=${numb}]`);

答案 3 :(得分:2)

您还可以使用andSelf()方法获取包含DOM然后find()可以解决您的想法

$(function() {
  $('.slide-link').andSelf().find('[data-slide="0"]').addClass('active');
})
.active {
  background: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a class="slide-link" href="#" data-slide="0">1</a>
<a class="slide-link" href="#" data-slide="1">2</a>
<a class="slide-link" href="#" data-slide="2">3</a>