我按以下方式设置id属性:
Element node = document.createElement("something");
node.setAttribute("id", "1");
node.setIdAttribute("id", true);
然后我检查这是否真的是id属性:
node.getAttributeNode("id").isId());
返回true
但是当我尝试通过其id
获取节点时document.getElementById("1");
甚至
document.getElementById(node.getAttributeNode("id").getValue())
我得到了空
我做错了什么?
答案 0 :(得分:0)
尽管您输入了错误的标签,但看起来您已将元素的ID定义为" 1"所以这意味着要引用它,你也应该通过" 1"
来引用它document.getElementById("1");
会在标记中返回DOM对象,只要它存在于标记中即可。根据框架的不同,它可能会从Dom中提取出来,但初学者编程并不总是如此。
作为一个注意事项,ID应该是唯一的,但同时将它命名为人类可读的东西也是很好的。原因是你稍后会回到这个代码,并且完全不知道它的作用。
如果您相应地命名,它将使您更容易,也允许您创建并遵循一般的编程最佳实践。
答案 1 :(得分:0)
除了之前的答案。 代码的问题在于创建的节点
var node = document.createElement("sector");
node.setAttribute("id", "1");
尚未出现在文档中。你必须添加它。 实施例
// Adding the node to the body.
document.body.append(node)
现在
document.getElementById(1)