【问题标题】:What is an example of a Node that isn't an Element?什么是不是元素的节点的示例?
【发布时间】:2014-08-12 21:12:40
【问题描述】:

什么是节点不是元素的示例?从 HTML 创建的元素是否与从 JS 创建的元素具有相同的“类型”? (即它们都是 Element 类型的吗?)如何创建一个 不是元素的节点?

【问题讨论】:

  • textNodes 有数据而不是 innerHTML。 “ hi ”有两个节点:元素 B 和文本节点“hi”。还有评论节点、属性节点(已弃用),还有一些我不记得了...
  • 我不知道我的理解是否正确,您的意思是像文本节点这样的东西吗?您可以使用以下方法创建一个:document.createTextNode('string')

标签: javascript xmlnode


【解决方案1】:

最重要的是文本节点,没有它们,页面可能有结构但没有内容。

您可以使用 document.createTextNode 创建它们(与document.createElement 不同)。

其他类型的nodes包括:

  • 文档
  • 文档片段
  • 文档类型
  • 加工说明
  • 评论

(current) DOM3 中还有EntityReference、CDATASection、Notation 和Attribute 节点。然而,这些从未真正使用过,并且在 DOM4 草案中已被弃用。

【讨论】:

  • 感谢您的链接。因此,根据我收集到的信息,所有普通元素(p、div、脚本等)都是 Element 类型,无论它们是由浏览器还是脚本创建的。
  • @AmadeusDrZaius:某些东西是从 HTML 解析还是由 JS 创建并没有区别。 DOM 就是 DOM。
  • 是的 - 所有“元素”都是Element 节点。但是,在 DOM 树中还有其他类型的节点,例如Document 节点(在根中)
【解决方案2】:

查看MDN page for Node,您可以创建:

请注意,其中一些可能未得到广泛支持,即 document.createFragment 仅在 Chrome 和 Firefox 中受支持,其他可能已弃用,即实体引用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 2011-01-12
    • 1970-01-01
    • 2013-12-21
    • 1970-01-01
    相关资源
    最近更新 更多