1

我想知道是否可以在特定的 HTML 注释之后插入 HTML 代码,而不是在诸如<div>.

例如,我想<div id="OUTER"><div id="INNER">在下面的第一个评论标签之后插入开始标签;以及</div></div>第二个评论标签之后的结束标签。有人知道该怎么做吗?

<!-- Insert Opening Tags Below -->


<div id="CONTENT">Page Content Here</div>


<!-- Insert Closing Tags Below-->

先感谢您。

埃琳娜

4

1 回答 1

2

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-->
于 2013-09-02T19:18:37.080 回答