使用jQuery选择数据属性为*而非*的元素

Select elements with data attribute *not* using jQuery

本文关键字:而非 元素 jQuery 选择 数据属性 使用      更新时间:2023-09-26

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

我可以使用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的所有元素的列表?

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

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

我相信querySelectorAll只适用于CSS(?)。

这很简单:

var elements = document.querySelectorAll('[data-mydata]');