Javascript 查找具有特定数据属性的所有元素(不考虑值)

Javascript 查找具有特定数据属性的所有元素(不考虑值),javascript,jquery,jquery-selectors,traversal,jquery-traversing,Javascript,Jquery,Jquery Selectors,Traversal,Jquery Traversing,我有一个表单,它有一堆文本元素,其中一些元素有一个数据属性集 我想遍历所有具有该属性的元素,提取该属性 我创造了一把小提琴 我正在查找文本元素,但data属性上的选择器没有返回任何元素 想法会很有帮助…选择符是正确的,但您应该在a中使用它,而不是在a中: 这似乎奏效了。但是我需要仔细阅读find()和filter()之间的区别。谢谢。更详细地说,仅使用[datafoo]选择器就意味着必须检查每个DOM元素,这是一项相当繁琐的任务。使用本机函数(如getElementsByTagName)可以预

我有一个表单,它有一堆文本元素,其中一些元素有一个数据属性集

我想遍历所有具有该属性的元素,提取该属性

我创造了一把小提琴

我正在查找文本元素,但data属性上的选择器没有返回任何元素


想法会很有帮助…

选择符是正确的,但您应该在a中使用它,而不是在a中:


这似乎奏效了。但是我需要仔细阅读find()和filter()之间的区别。谢谢。更详细地说,仅使用
[datafoo]
选择器就意味着必须检查每个DOM元素,这是一项相当繁琐的任务。使用本机函数(如
getElementsByTagName
)可以预先进行过滤,这样性能会更好<代码>$('input')。过滤器('[data foo]')而不是
$('[data foo]')
。就性能而言,不是$(':text[data foo]');快点?或同等的?@Bonatoc你是对的,
$(':text[data foo]')更快。此外,还有一种更有效的方法:
$('[type=“text”][datafoo]')。中还描述了
[type=“text”]
更好,但不匹配没有类型属性的
。@JeffDege我很高兴听到您将寻求进一步的知识!这是最重要的部分。谢谢:)
var textInputs = $(':text');
alert('found ' + textInputs.length + ' textInputs');

var datas = textInputs.find('[data-foo]');
alert('found ' + datas.length + ' datas');
var datas = textInputs.filter('[data-foo]');
     var datas = $(':text[data-foo]');