查找具有特定数据属性jQuery的元素

时间:2012-07-31 19:39:27

标签: javascript jquery html5

据我所知,我总是可以迭代DOM树并检查数据字段的每个元素,如果值正确但我想要一个更清晰的解决方案。例如

    <div id="theDiv">
       <div>
         <span data-num="3" ></span>
         OTHER HTML
       </div>
       <div>
         <div><span data-num="23"></span><div>
         OTHER HTML
       </div>
       <div>
         <span data-num="3"></span>
         OTHER HTML
       </div>
    </div>

是否有一个jQuery one liner来查找data-num = 3的所有跨度?

我知道我可以找到所有跨度
  $("#theDiv").find(span).each(function(e) { ... });

但我想要像

这样的东西
  $("#theDiv").find(span > data-num=3).each(function(e) { ... });

2 个答案:

答案 0 :(得分:52)

使用Attribute Equals Selector

 $("#theDiv span[data-num='3']")

Try it!

答案 1 :(得分:1)

仅用于示例(过滤器)

$('#theDiv span').filter(function(){ return $(this).data("num") == 3});