【发布时间】:2015-11-07 01:28:20
【问题描述】:
我有一个节点,我分配了一个数据属性data-myid = "id3"。当我尝试打印此属性的值时,我没有得到id3,而是得到null 或undefined。
这是代码:
console.log("node2");
console.log(node2);
console.log("node2.getAttribute(\"data-myid\") = " + node2.getAttribute("data-myid"));
console.log("node2.getAttribute(\"myid\") = " + node2.getAttribute("myid"));
console.log("node2.dataset.myid = " + node2.dataset.myid);
我尝试了不同的方法,但得到的结果是:
为什么?如何获得myid 的值?
非常感谢!
PS:为什么使用data attribute 而不是id 取决于我的应用程序。所以我不会把myid改成id。
我也会只使用JavaScript,而不是jQuery。
JSFiddle: 我从未使用过 JSFiddle,也不知道它是如何工作的。我做了这个https://jsfiddle.net/xy1jxeos/ 但不完全是我的代码,这里是简化的
好的,有问题。我创建了这个简单的文件来查看问题是否出在其他地方:
<!DOCTYPE html>
<html>
<head>
<title>get attribute</title>
</head>
<body>
<div id="main" data-myid="id3"></div>
<script>
console.log(document.getElementById("main"));
console.log(document.getElementById("main").getAttribute("myid"));
</script>
</body>
</html>
问题依然存在!以下是印刷品:
<div id="main" data-myid="id3"></div>
null
这怎么可能?我哪里错了?
【问题讨论】:
-
我以这种方式使用 Javascript 添加属性:
node.childNodes[i].dataset.myid = att.myID;。使打印正常工作,分配属性。 -
展示你如何声明和分配
node2。另外,你能在 SO sn-p 或 JSFiddle 中重现这个问题吗? -
这是哪个浏览器(看起来像chrome)
-
问题中的代码或您如何设置该属性没有明显错误 - 代码的“最小”示例(此处的代码 sn-p 或 fiddle 或其他)显示相同的问题肯定有助于追查问题
-
感谢您的回复。我修改了主要信息..
标签: javascript custom-data-attribute