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

时间:2013-07-13 02:00:19

标签: javascript jquery html outerhtml

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

<!--      <div>'Some inner text'</div>  -->

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

感谢您的任何见解。

2 个答案:

答案 0 :(得分:18)

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

web inspector

您会看到Google Chrome网页检查程序将其呈现为DOM的一部分(请注意底栏如何将其显示为div#box1.active的子项。)

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

  

COMMENT_NODE 8

W3还定义了DOM的 Comment 接口:

  

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

答案 1 :(得分:2)

HTML注释是DOM的一部分,它们只是被浏览器忽略才能显示。