【问题标题】:Why i couldn't append a child node to the document object model directly?为什么我不能直接将子节点附加到文档对象模型?
【发布时间】:2017-12-05 20:31:17
【问题描述】:

今天在学习Document对象模型的时候,遇到了直接在document对象上追加新创建的child的问题, 这是我的代码:

var newEl=document.createElement("textarea");
document.appendChild(newEl);

结果错误是:

未捕获的 DOMException:无法在“节点”上执行“appendChild”:文档上只允许一个元素。

我知道解决方案是将其附加到 document.bodydocument.documentElement ,但我没有找到 reference指出由于特定原因,上述方式不正确。

接受我作为初学者的歉意。

【问题讨论】:

标签: javascript dom


【解决方案1】:

如果您想要了解 Node Tree 中不同项目的规范和约束,这可能就是您要寻找的。基本上,文档只能有 1 种类型(HTML 或 XML)和 1 个元素/子元素(例如 <html>),元素(<html> 标签)可以有多个子元素(<body><head> 等。 )、属性等。因此可以附加元素 (<html>) 及其子元素,但文档本身不能。

希望对您有所帮助。

【讨论】:

    【解决方案2】:

    我刚刚遇到这个错误,所以想澄清原因, 您正在使用此命令 document.appendChild(newEl); 执行的操作是尝试向主文档添加一个元素,但主文档只允许一个元素,即主 <html> 标记。

    所以你可以选择另一个元素,或者如果你想将它添加到可显示区域,你应该使用document.body.appendChild(newEl)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-18
      • 2020-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多