【发布时间】:2021-07-02 22:14:50
【问题描述】:
-
大家好,所以我使用 Javascript 制作了一个 DOM 标签,并给它一个 ID,如下所示:
让 Tagger = document.createElement('h3');
Tagger.id = '游戏';
- 这样做后,我尝试通过以下方式为标记器提供内容:
document.getElementById(Tagger).innerHTML = "Hello World";
- 当我 console.log 页面时,它给了我以下错误:
未捕获的类型错误:document.getElementById(...) 为空
- 因此,我尝试使用 id 名称而不是使用 Tagger 变量,但它起作用了。这就是我所做的:
document.getElementById("Game").innerHTML = "Hello World";
5)问题是我不想直接使用 id 但我想使用名为 Tagger 的变量名,我的第一种方法可能有什么问题?
【问题讨论】:
-
document.getElementById接受一个字符串。Tagger是一个元素。您无法在文档中查询尚未添加的元素,尤其是对于已创建的元素,这是没有意义的。只需执行Tagger.innerHTML = "Hello World"。document.getElementById(Tagger)与document.getElementById(String(Tagger))相同,即document.getElementById("[object HTMLHeadingElement]")。请记住,Tagger.id是"Game";Tagger不是"Game"。 -
另外,您可能不需要 ID。对于标题,它对于 URL 中的片段标识符很有用。但是创建元素不需要ID。更紧凑的代码版本(加上最佳实践):
const tagger = Object.assign(document.createElement("h3"), { innerHTML: "Hello World" }).
标签: javascript html dom innerhtml