Javascript 在注释(包括注释)之间移动HTML代码

Javascript 在注释(包括注释)之间移动HTML代码,javascript,jquery,html,Javascript,Jquery,Html,我有下面的HTML评论之间的特殊内容 <p>Regular text</p> <p>Regular text</p> <!--Special Content--> <p>Special Content 1</p> <p>Special Content 2</p> <!--/Special Content--> <p>Regular text</p> &l

我有下面的HTML评论之间的特殊内容

<p>Regular text</p>
<p>Regular text</p>
<!--Special Content-->
<p>Special Content 1</p>
<p>Special Content 2</p>
<!--/Special Content-->
<p>Regular text</p>
<p>Regular text</p>
<p id="reference">Place special content with comments below this <p> element</p>
常规文本

常规文本

特别内容1

特别内容2

常规文本

常规文本

在此元素下方放置带有注释的特殊内容

我需要将注释
之间的HTML内容(包括注释本身)包装到
中,并将其移动到

元素下方

我无法访问实际的HTML模板,因此需要通过JavaScript或JQuery完成

到目前为止,我还没有找到一种方法来包装包括评论在内的内容

最终结果应该是:

<p>Regular text</p>
<p>Regular text</p>
<p>Regular text</p>
<p>Regular text</p>
<p id="reference">Place special content with comments below this <p> element</p>
<div id="wrapper">
  <!--Special Content-->
  <p>Special Content 1</p>
  <p>Special Content 2</p>
  <!--/Special Content-->
</div>
常规文本

常规文本

常规文本

常规文本

在此元素下方放置带有注释的特殊内容

特别内容1

特别内容2

我很欣赏你的想法。

var-dataElem=document.getElementById(“数据”);
var-doMove=false;
var-toMove=[];
对于(var i=0;i

常规文本

常规文本

特别内容1

特殊内容2

常规文本

常规文本

在此元素下方放置带有注释的特殊内容


这将在引用id标记之后的特殊注释标记之间移动所有内容。
let move=false;
让parse=$('body').contents().each(函数(k,v){
if(v.nodeType==8){
如果(v.nodeValue==“特殊内容”)move=true;
否则如果(v.nodeValue==“/特殊内容”)move=false;
}
else if(move&&v.nodeType==1)
$(v).insertAfter(#reference');
});

常规文本

常规文本

特别内容1

特别内容2

常规文本

常规文本


在此元素下方放置带有注释的特殊内容

到目前为止您尝试了什么?我不太确定jQuery是否是“定位”注释节点的最佳选择——这在vanilla JS中可能更简单。@Rory McCrossan:用于提供信息和跟踪。其他内容将动态添加到“特殊内容”区域,移动它而不添加注释会给使用“特殊内容”引用其他操作的其他人带来问题/events@CBroe:普通JS也可以。我很欣赏你的定位。@Rory McCrossan:内容是从服务器中提取出来的,然后在浏览器中进行前端操作styling@RoryMcCrossan“他们不在DOM中”是什么意思?并且移动节点的顺序是错误的,注释节点没有按照显式请求移动,并且它们没有放入包装器div…;)哦,我的口味,哈哈,我不敢相信我错过了。看起来你已经搞定了。我对你的答案投了赞成票:-)谢谢!这很好用。我真的很感谢你的帮助和指导。