HTMLcomment
在 DOM 层次结构中有自己的对应节点,它的nodeType
属性是8
. 像 Firebug 或 Google Console 这样的 DOM 检查器不会显示它们,但是,您可以通过查看页面的源来找到它们,如果元素是元素的子body
元素,则可以这样过滤childNodes
:
$('body').contents().each(function(i, elem){
if (elem.nodeType == 8) {
// This is a Comment node
// Comment { data=" Insert Closing Tags Below", length=26, nodeType=8, more...}
// You can select all the next sibilngs of the first
// Comment node including the second Comment Node
// and then wrap all of them
}
});
做你想做的事是没有意义的,浏览器只显示服务器发送的文档的初始版本,使用 JavaScript 操作文档不会改变源视图。此外,您只能将节点添加到文档中,不能将某些字符串放入 DOM 中以被解析为 DOM 元素,除非您正在操作innerHTML
另一个元素。我建议包装#CONTENT
元素:
$('#CONTENT').wrap('<div id="OUTER"><div id="INNER"></div></div>');
结果是:
<!-- Insert Opening Tags Below -->
<div id="OUTER">
<div id="INNER">
<div id="CONTENT">Page Content Here</div>
</div>
</div>
<!-- Insert Closing Tags Below-->