3

有没有一种简单的方法可以在不使用 jQuery 的情况下获取包含data-*属性的所有元素的列表(并且希望不迭代整个 DOM 树)?

我可以使用 jQuery 找到很多答案,但我无法在我的项目中使用它,也无法使用纯 Javascript 找到答案。

例如,如果我有这个 HTML:

<input data-mydata="data1">
<input data-mydata="data2">
<div data-mydata="data3"></div>
<div data-mydata="data4"></div>
<input>
<div></div>

然后得到一个包含任何类型的所有元素的列表data-mydata

我试图实现的是根据 data-* 以及数据值从某些元素中获取数据进行存储。

我知道我可以使用该name属性,getElementsByName但这也不能在我的项目中使用,因为元素的名称设置用于其他目的。

而且我相信querySelectorAll唯一适用于CSS(?)。

4

1 回答 1

8

就是这样:

var elements = document.querySelectorAll('[data-mydata]');
于 2013-07-19T18:07:56.330 回答