方法getElementById()返回null

时间:2018-02-27 19:30:42

标签: java dom

我按以下方式设置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())

我得到了空

我做错了什么?

2 个答案:

答案 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)