2013-07-13 14 views
14

Qui ho un jsfiddle - http://jsfiddle.net/stevea/QpNbu/3/ - che raccoglie lo outerHTML per tutti gli elementi che hanno class='active'. Quello che mi stupisce è che, anche se io commento un po 'di HTML, come in:Perché outerHTML riporta i commenti <!-​- -->?

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

outerHTML porta ancora indietro! Questo non può essere ancora nel DOM, quindi mi chiedo dove sia lo outerHTML.

Grazie per qualsiasi intuizione.

+2

innerHTML farà la stessa cosa – smerny

risposta

18

I commenti in formato HTML sono sorprendentemente, infatti, fanno parte del DOM! Se si guarda in questa schermata qui:

web inspector

Vedrai Google Chrome Web ispettore rende come parte del DOM (notare come la barra inferiore mostra come un bambino di div#box1.active pure.)

per la documentazione più concreto, se si guardano le possibili Node.nodeType s per nodi DOM on MDN, vedrai che il COMMENT_NODE è uno dei tipi validi.

COMMENT_NODE 8

W3 definisce anche il interfaccia Commento per il DOM:

Questa interfaccia eredita da CharacterData e rappresenta il contenuto di un commento, cioè tutti i caratteri tra l'iniziale '<! -' e la fine '->'. Si noti che questa è la definizione di un commento in XML e, in pratica, HTML, sebbene alcuni strumenti HTML possano implementare la struttura completa dei commenti SGML.

+3

Sorprendentemente? Non sarebbe un modello completo del documento se li omettesse. –

+0

@ChrisMorgan my bad, fixed – Zhanger

+2

È stato sorprendente per me, e apparentemente per molte altre persone a giudicare da tutti gli upvotes della risposta. – Steve

2

I commenti HTML fanno parte del DOM, vengono semplicemente ignorati dal browser per la visualizzazione.

+0

Questo è in qualche modo contraddittorio: il browser costruisce il DOM; se sono nel DOM, ovviamente * non sono stati * ignorati dal browser. – icktoofay

+2

Suppongo tu voglia dire "essere ignorato dal browser * per la visualizzazione *." –

+0

@ChrisMorgan Questo è ciò che intendevo. Ho aggiornato la risposta. –

Problemi correlati