19

我知道我总是可以遍历 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) { ... });
4

2 回答 2

53

使用属性等于选择器

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

尝试一下!

于 2012-07-31T19:41:56.080 回答
1

仅用于示例(过滤器)

$('#theDiv span').filter(function(){ return $(this).data("num") == 3});
于 2012-07-31T19:54:29.010 回答