为什么outerHTML会带回<! - - - >评论?

Ste*_*eve 14 html javascript jquery outerhtml

我在这里有一个jsfiddle - http://jsfiddle.net/stevea/QpNbu/3/ - 收集outerHTML所有有的元素class='active'.令我惊讶的是,即使我注释掉了一些HTML,例如:

<!--      <div>'Some inner text'</div>  -->
Run Code Online (Sandbox Code Playgroud)

outerHTML仍然把它带回来!这还不能在DOM中,所以我想知道在哪里outerHTML.

感谢您的任何见解.

Zha*_*ger 18

HTML中的注释令人惊讶,实际上是DOM的一部分!如果你看这个屏幕截图:

网络检查员

您将看到谷歌浏览器网页检查器将其呈现为DOM的一部分(请注意底栏如何将其显示为子项div#box1.active.)

有关更具体的文档,如果您查看MDN上Node.nodeType DOM节点的可能s ,您将看到它是有效类型之一.COMMENT_NODE

COMMENT_NODE 8

W3还定义了DOM 的Comment接口:

此接口继承自CharacterData并表示注释的内容,即起始"<! - "和结束" - >"之间的所有字符.请注意,这是XML中注释的定义,实际上是HTML,尽管某些HTML工具可能会实现完整的SGML注释结构.

  • 出奇?如果省略它们,它几乎不是文档的完整模型. (3认同)
  • 这对我来说是令人惊讶的,显然很多其他人从所有的评价中得出答案. (2认同)