什么是否元素的节点的示例?
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 中受支持,其他可能已弃用,即实体引用。
【讨论】:
以上是关于什么是否元素的节点的示例?的主要内容,如果未能解决你的问题,请参考以下文章