如何找到具有特定数据属性的所有标签?

How to find all tags with a specific data- attribute?

我需要使用 jQuery 找到所有绑定了 'error' 数据的标签。 这就是我所做的。它不起作用,因为我用代码添加了数据属性。

$('form input').data('error',1);

console.log( $('form input[data-error]') ); // This is empty

我怎样才能检索所有这些?

使用filter()

$('form input').filter(function(){
     return $(this).data('error'); // adjust if boolean not sufficient    
}).doSomething();

可以使用原生JavaScript(不需要jQuery),只需使用:

Document.querySelectorAll() with a Selectors Level 3(类似于CSS)

var elms = document.querySelectorAll('[data-animal-type="fish"]');
console.log(elms.length);
<li data-animal-type="bird">Owl</li>
<li data-animal-type="fish">Salmon</li>
<li data-animal-type="spider">Tarantula</li>

选择器非常强大,可以进行更高级的选择,例如:

E[foo^="bar"] an E element whose "foo" attribute value begins exactly with the string "bar" E[foo$="bar"] an E element whose "foo" attribute value ends exactly with the string "bar" E[foo*="bar"] an E element whose "foo" attribute value contains the substring "bar"
E[foo|="en"] an E element whose "foo" attribute has a hyphen-separated list of values beginning (from the left) with "en"