特定HTML注释后面插入HTML块(Insert HTML block after a specif

2019-10-18 14:30发布

我想知道如果我可以在特定的HTML注释之后而不是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-->

先感谢您。

埃琳娜

Answer 1:

HTML comment在DOM层次它自己相应的节点,它的nodeType属性是8 。 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-->


文章来源: Insert HTML block after a specific HTML comment