什么是否元素的节点的示例?

Posted

技术标签:

【中文标题】什么是否元素的节点的示例?【英文标题】: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') 【参考方案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.createTextNode 文档片段 - document.createDocumentFragment 评论-document.createComment CDATA 部分 - document.createCDATASection 实体参考 - document.createEntityReference 处理指令-document.createProcessingInstruction

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

【讨论】:

以上是关于什么是否元素的节点的示例?的主要内容,如果未能解决你的问题,请参考以下文章

关于DOM树的常见增删操作

jquery的父子兄弟节点查找示例代码

文本节点对应的目标实例是什么?

html DOM节点树中,谁是根节点,document还是html,html节点是否指的是根元素节点

是否可以将元素附加到 JavaScript 节点列表?

二叉树:递归函数究竟什么时候需要返回值,什么时候不要返回值?