我在這裏有一個jsfiddle - http://jsfiddle.net/stevea/QpNbu/3/ - 爲所有具有class='active'
的元素收集outerHTML
。讓我吃驚的是,即使我註釋掉一些HTML的,如:爲什麼outerHTML帶回<!-- -->評論?
<!-- <div>'Some inner text'</div> -->
outerHTML
仍然把它帶回!這仍然不能在DOM中,所以我想知道outerHTML
在哪裏。
感謝您的任何見解。
我在這裏有一個jsfiddle - http://jsfiddle.net/stevea/QpNbu/3/ - 爲所有具有class='active'
的元素收集outerHTML
。讓我吃驚的是,即使我註釋掉一些HTML的,如:爲什麼outerHTML帶回<!-- -->評論?
<!-- <div>'Some inner text'</div> -->
outerHTML
仍然把它帶回!這仍然不能在DOM中,所以我想知道outerHTML
在哪裏。
感謝您的任何見解。
在HTML中的評論是令人驚訝的,實際上,一部分的DOM!如果你在這個屏幕截圖看這裏:
你會看到谷歌Chrome網絡檢查呈現爲DOM的一部分(注意底欄是如何顯示它作爲div#box1.active
一個孩子爲好。 )
有關更具體的文檔,如果您查看可能的Node.nodeType
s的DOM節點on MDN,您會看到COMMENT_NODE
是有效的類型之一。
COMMENT_NODE 8
W3還定義了DOM的註釋接口:
此接口繼承自CharacterData表示註釋的內容,即,所有的字符在開始'<! - '和結束' - >'之間。請注意,這是對XML中註釋的定義,並且實際上是HTML,儘管一些HTML工具可能會實現完整的SGML註釋結構。
HTML註釋是DOM的一部分,他們只是被瀏覽器忽略顯示。
這有點矛盾 - 瀏覽器構造DOM;如果他們在DOM中,他們顯然*不會被瀏覽器忽略。 – icktoofay
我認爲你的意思是「被瀏覽器*忽略*」。 –
@ChrisMorgan這就是我的意思。我已經更新了答案。 –
innerHTML會做同樣的事情 – smerny