2013-07-13 28 views
14

ここにはclass='active'のすべての要素に対してouterHTMLを収集するjsfiddleがあります(http://jsfiddle.net/stevea/QpNbu/3/)。なぜouterHTMLは<!-​- -->のコメントを返すのですか?

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

outerHTMLまだそれを持ち帰る:どのような私を驚かせることは、私はのようにHTMLの一部を、コメントアウトしてもということです!これはまだDOM内にあることはできませんので、outerHTMLが探している場所が不思議です。

ありがとうございました。

+2

innerHTMLは同じことをします – smerny

答えて

18

HTMLのコメントはです。驚いたことに、実際にはDOMの一部です!あなたはここで、このスクリーンショットで見れば:

web inspector

あなたは(Google ChromeのウェブインスペクタはDOMの一部としてそれをレンダリング表示されます下のバーは、同様div#box1.activeの子としてそれを示してどのように注意してください。 )

より具体的なドキュメントについては、DOMノードon MDNの可能なNode.nodeTypeを見ると、COMMENT_NODEが有効なタイプの1つであることがわかります。すなわち、すべての文字、

このインタフェースはCharacterDataを継承し、コメントの内容を表しています。

COMMENT_NODEは8

W3もDOMのためのコメントインターフェイスを定義します開始 '<! - 'と終了 ' - >'の間です。これはXMLのコメントの定義であり、実際はHTMLですが、一部のHTMLツールでは完全なSGMLコメント構造を実装できます。

+3

驚いたことに?文書を省略した場合、それは完全なモデルになることはほとんどありません。 –

+0

@ChrisMorgan私の悪い、固定 – Zhanger

+2

私には驚きました、そして明らかに、答えが得たすべてのupvotesから判断する他の多くの人々に。 – Steve

2

HTMLコメントはDOMの一部です.HTMLコメントは表示するためにブラウザから無視されます。

+0

これはやや矛盾しています - ブラウザはDOMを構築します。 DOMに入っていれば、明らかにブラウザによって無視されませんでした。 – icktoofay

+2

私はあなたが "ブラウザ*で表示*のために無視される"ということを意味します。 –

+0

@ChrisMorganそれは私が言ったことです。私は答えを更新しました。 –

関連する問題