使用 JavaScript 向 DOM 添加元素

IT技术 javascript html dom
2021-02-23 04:28:07

我想用 JavaScript 添加一个元素。

我有以下代码:

var collection = document.getElementsByTagName('body');
var a = document.createElement('div');
a.innerHTML = 'some text';
collection.item(0).firstChild.appendChild(a);

和简单的 HTML:

<html>
    <head></head>
<body>

</body>
</html>

错在哪里?

2个回答

这应该做你正在寻找的:

    var newdiv = document.createElement("div");
    newdiv.appendChild(document.createTextNode("some text"));
    document.body.appendChild(newdiv);
<html>
    <head></head>
<body>

</body>
</html>

首先,您通过 来创建元素document.createElement要设置其文本内容,您必须有一个“文本节点”来包裹您的文本。因此,您首先创建这样的文本节点,然后将其作为(唯一的)子节点添加到新对象中。

然后,将新创建的 DIV 元素添加到 DOM 结构中。您不必使用 查找 BODY 元素getElementsByTagName(),因为它作为document对象的一个属性存在

但这只是示例,当我想要 getElementsByTagName('xyz') 并创建元素 createElement('abc') 并设置 innerHTML="<a href "some url">text</a>" ....How can我这样做?
2021-05-07 04:28:07
提醒一下,documentFragment添加多个元素时应该始终使用documentFragment充当临时区域,您可以在其中反复添加元素,最后将其添加到DOM. 向 重复添加元素DOM将导致整个文档重排。请参阅:ejohn.org/blog/dom-documentfragments
2021-05-20 04:28:07

您的代码失败了,因为在您尝试插入那个全新的 div 时,body 标记为空,因此没有 firstChild 可以附加任何内容。将最后一行更改为:

collection.item(0).appendChild(a);