在研究Document对象模型时,我遇到了一个问题,就是直接在文档对象上附加一个新创建的子对象, 这是我的代码:
var newEl=document.createElement("textarea");
document.appendChild(newEl);
产生的错误是:
未捕获的DOMException:无法执行' appendChild' on' Node':只允许文档中的一个元素。
我知道解决方案是将其附加到 document.body 或 document.documentElement ,但我没有找到参考指出上述方式因特定原因而不正确。
接受我为初学者道歉。
答案 0 :(得分:1)
如果你想要做的是理解Node Tree中不同项目的规范和限制,那么这可能是你正在寻找的。基本上,Document只能有一种类型(HTML或XML)和一个元素/子元素(例如<html>
),而元素(<html>
标记)可以有多个子元素(<body>
,{ {1}}等等。),属性等。所以元素(<head>
)及其子元素可以附加到,但文档本身不能。
希望有所帮助。
答案 1 :(得分:0)
我刚遇到此错误,因此想澄清原因,
您正在使用此命令document.appendChild(newEl);
进行的操作正在尝试向主文档中添加元素,但是主文档仅允许一个元素,即主<html>
标签。
因此,您可以选择另一个元素,或者如果要将其添加到可显示区域,则应使用document.body.appendChild(newEl)