如何获得具有特定数据属性的html节点
How do I get an html node with a specific data attribute?
在javaScript中,如何获得一个特定的html节点的最佳方法是我知道属性名称和属性值,并且许多html节点可以具有相同的属性名称?属性名称是一个数据属性。
以下是一些示例html:
<div class="misc1" data-test="value1" data-test="value2"></div>
<div class="misc2" data-test="value3" data-test="value4"></div>
如果我想用data-test="value3"
获得html节点,我需要做一些类似以下的事情吗:
var elements = document.querySelectorAll("[data-test]");
for (i = 0; i < elements.length; i++) {
for(x = 0; x < elements[i].attributes.length; x++) {
//Do an attribute value check??
}
}
我可以在代码方面得到一些帮助吗?我不想使用jQuery?
您的属性选择器可以更具体,如下所示:
var elements = document.querySelectorAll('[data-test="value3"]');
属性选择器还有多种其他变体:
[attr]
表示属性名称为attr的元素[attr=value]
表示属性名称为attr且其值恰好为"value"的元素[attr~=value]
表示属性名称为attr的元素,该元素的值是以空格分隔的单词列表,其中一个为确切地说是"价值"[attr|=value]
表示属性名称为attr的元素。它的值可以是"value",也可以以"value"开头紧随其后的是"-"(U+002D)。它可以用于语言子代码匹配[attr^=value]
表示属性名称为attr且其值以"value"为前缀的元素[attr$=value]
表示属性名称为attr的元素,其值以"value"作为后缀[attr*=value]
表示属性名称为attr的元素,其值至少包含一个字符串"value"作为子字符串[attr operator value i]
在右括号前添加i会导致对值进行不区分大小写的比较(对于字符在ASCII范围内)
相关文章:
- 函数jquery.html()不提供数据属性集值
- 使用数据属性将HTML数据复制到另一个元素
- 使用jQuery在select选项上设置HTML数据属性
- 使用Javascript而不是html数据属性配置Parsley
- 使用 Javascript 编写引用属性数据的 HTML
- 选择具有特定值的 html 数据属性
- Javascript:如何将带有html内容的变量注入到附加的数据属性中
- 生成html时,在html数据属性中存储由.push()填充的数组
- 如何查找所选HTML选项的所有数据属性
- 当通过Jquery data()附加时,以及当直接通过HTML中的数据属性附加时,检查HTML元素中的数据()
- html数据属性在firefox中使用javascript时没有按预期显示,但在chrome中显示正确
- 获取 html 元素的点击事件的数据-* 属性
- AJAX 数据 - 替换 HTML 与更新值属性
- 如何将javascript对象或JSON存储在使用html5数据属性的html元素中
- 使用 PrototypeJS 1.6 访问锚点上的 HTML 数据属性
- JS变量等于html数据属性
- 为什么AngularJS在使用ng-bind-html时会去除数据属性
- 获取 HTML 元素的所有静态数据属性,而无需内部绑定数据
- Html将5个数据属性转换为jquery插件选项格式
- 如何将变量添加到附加的html数据属性中