0
我有一個節點,我分配了一個數據屬性data-myid = "id3"
。當我嘗試打印此屬性的值時,我沒有收到id3
,但是收到了null
或undefined
。在Javascript中獲取數據屬性時出錯
這是代碼:
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/但不完全是我的代碼,在這裏被簡化
OK有什麼不對。我創建了這個簡單的文件,看看問題是否在其他地方:
<!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;'。使打印工作正常,屬性被分配。 – lonely
顯示如何聲明並分配'node2'。另外,你可以在SO片段或JSFiddle中重現這個問題嗎? –
哪個瀏覽器是這樣的(看起來像chrome) –