Javascript JS hasAttribute具有数据属性值
是否有一种本机方法(不使用jQuery)来检查dom元素是否具有具有所选值的属性。例如:Javascript JS hasAttribute具有数据属性值,javascript,jquery,Javascript,Jquery,是否有一种本机方法(不使用jQuery)来检查dom元素是否具有具有所选值的属性。例如: //assume doc has data-mod="do" defined 这是事实: document.hasAttribute('data-mod') 但这是错误的: document.hasAttribute('data-mod=“do”') 是否有任何方法可以在具有值的DOM元素上以本机方式检查数据属性?是的,如下所示: var selector = document.getElementsBy
//assume doc has
data-mod="do" defined
这是事实:
document.hasAttribute('data-mod')代码>
但这是错误的:
document.hasAttribute('data-mod=“do”')
是否有任何方法可以在具有值的DOM元素上以本机方式检查数据属性?是的,如下所示:
var selector = document.getElementsByTagName("H1")[0]; //Exemple of a h1
if (selector.getAttribute('data-mod') == "do"){
//Do your logic
}
您必须通过访问属性值,并将其与预期字符串进行比较:
if (node.getAttribute('data-mod') === 'do') {
...
}
对于现代浏览器,您可以使用:
…或对于[data-*]
属性,您可以使用:
你可以用
通过使用数据集
您可以轻松访问元素的数据属性。这可能有效
var list = document.querySelectorAll('[data-mod="do"]');
你可以用
功能数据(el、数据名、数据值){
对于(变量i=0;i
abc
123
没有数据
文档
没有属性。您是指文档中的某个元素,还是某个特定元素有属性?请澄清您的问题。“是否有原生方式,没有JQuery,”为什么在问题处有JQuery
标记?TypeError:document.getAttribute不是函数
抱歉,文档没有属性,你必须选择一个有效的选择器,否则我会更清楚的。我不知道函数中的数据属性或值是什么,因为它可以change@TDmoneybanks因此,在执行过程中,您将只有这个'data-mod=“do”
?该函数将接受一个选择器参数。它的内容可以是任何有效的选择器,包括任何数据-*=”“我需要能够看到元素是否具有该选择器。@TDmoneybanks您可以使用元素。匹配(选择器)
,正如ZZBOV为您的案例所建议的那样。但在使用它时要小心,因为它只受最新浏览器的支持。是的,我注意到这将最符合我的用例。你知道对ie 10+有什么样的支持吗?我看到他们只是在不同的名称下定义它们,所以如果我检查了所有可能的名称(mozMatchesSelector、webkitMatchesSelector等),我会不会很好地支持它们?匹配适用于我的用例。支持旧浏览器的含义/方式是什么?如果我记得有人用不同的名称定义了它,比如msMatchesSelctor(),对吗?要获得最新的兼容性信息,我建议您进行咨询,这表明您需要使用msMatchesSelector
作为获得IE9+支持的后备方法。
if (node.dataset.mod === 'do') {
...
}
if (elementNode.dataset['mod'] == 'do') {
//your code goes here.
}
var list = document.querySelectorAll('[data-mod="do"]');