Lo standard DOM per il nodo #document (la radice logica di un documento DOM) consente esattamente un nodo di elementi (ad esempio uno < HTML), ma molti nodi di commenti (e altri tipi di nodi più esoterici). Come tale, dovremmo aspettarci
document.lastChild
essere il nodo di commento che si desidera in questo caso. Stranamente, questo non funziona (almeno in Safari 4).
Inserire un nodo di commento prima che il nodo HTML vada bene nei miei test. In questo caso, document.childNodes.length è 2 e document.firstChild è il commento. Mettendo un commento dopo che il nodo HTML sembra essere inserito nel posto sbagliato nel DOM - document.childNodes.length rimane a 1, e il nodo nell'ispettore DOM è visto come l'ultimo figlio del nodo BODY. Tuttavia, non riesco a trovare quel nodo utilizzando l'API DOM a tutti!
Questa sembra essere una stranezza nell'implementazione di DOM (almeno). Un rapido test con Firefox mostra che non può nemmeno trovare un nodo di commento se è la prima voce del documento!
Modifica: OK, come per il commento di Aaron e altri riflessioni, è probabile che il parser per la pagina stia semplicemente scartando i nodi durante l'analisi. Non sono più certo che si tratti di un bug, ma non riesco a trovare nulla nella specifica (XML) che permetta ai parser di scartare interi nodi di commenti - solo il loro contenuto testuale.
fonte
2009-09-21 14:51:43
Sono in realtà commenti HTML – nickytonline