【问题标题】:Error getting data attribute in Javascript在 Javascript 中获取数据属性时出错
【发布时间】:2015-11-07 01:28:20
【问题描述】:

我有一个节点,我分配了一个数据属性data-myid = "id3"。当我尝试打印此属性的值时,我没有得到id3,而是得到nullundefined

这是代码:

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


【解决方案1】:

您的node2 似乎有问题 请提供您如何分配它。检查此代码jsfiddle

var node2 = document.getElementById(element).children[0];

如果你这样做了,那没关系。

【讨论】:

    猜你喜欢
    • 2015-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多