Javascript 使用domparser围绕代码块创建一个新的div容器

Javascript 使用domparser围绕代码块创建一个新的div容器,javascript,domparser,Javascript,Domparser,使用以下字符串: <h1>aa</h1><p>xx</p><p>yy</p><h1>aaa</h1><p>xxx</p><p>yyy</p> aaxxyyaaaxxxyyy 我想在头之前插入一个div容器,将下一个头之前的内容作为这个新div中的内容 aaxxyyaaaxxxyy 到目前为止,这就是我所做的 let s=“aaxxyyaaaxxxy

使用以下字符串:

<h1>aa</h1><p>xx</p><p>yy</p><h1>aaa</h1><p>xxx</p><p>yyy</p>
aaxx

yy

aaaxxx

yyy

我想在头之前插入一个div容器,将下一个头之前的内容作为这个新div中的内容

aaxx

yy

aaaxxx

yy

到目前为止,这就是我所做的

let s=“aaxx

yy

aaaxxx

yy

”; const parser=new DOMParser(); const doc=parser.parseFromString(s'text/html'); 常量elems=doc.body.queryselectoral('*'); […元素].forEach(元素=>{ 如果(el.textContent!=''&&el.matches('H1')){ //创建div容器 var div=document.createElement('div'); //设置Id div.id=el.textContent; //在H1之前获得下一个兄弟姐妹 风险值=下一个(el,'H1'); 对于(变量i=0;i<1.length;i++){ //将兄弟姐妹移动到div中 附属儿童分部(兄弟姐妹[i]); } //在DOM树中的el之前插入div el.parentNode.insertBefore(div,el.nextSibling); } }); 函数nextUntil(元素、选择器){ //设置兄弟数组 风险值=[]; //获取下一个同级元素 elem=elem.nextElementSibling; //只要有兄弟姐妹存在 while(elem){ //如果我们达到了目标 如果(元素匹配(选择器)) 打破 //否则,将其推送到同级阵列 兄弟姐妹。推(elem); //获取下一个同级元素 elem=elem.nextElementSibling; } 返回兄弟姐妹; }
log(doc.body.innerHTML)
您可以将当前元素前置到
div
容器中

//Prepend current element
div.insertBefore(el, div.firstChild);
let s=“aaxx

yy

aaaxxx

yy

”; const parser=new DOMParser(); const doc=parser.parseFromString(s'text/html'); 常量elems=doc.body.queryselectoral('*'); […元素].forEach(元素=>{ 如果(el.textContent!=''&&el.matches('H1')){ //创建div容器 var div=document.createElement('div'); //设置Id div.id=el.textContent; //在H1之前获得下一个兄弟姐妹 风险值=下一个(el,'H1'); 对于(变量i=0;i<1.length;i++){ //将兄弟姐妹移动到div中 附属儿童分部(兄弟姐妹[i]); } //在DOM树中的el之前插入div el.parentNode.insertBefore(div,el.nextSibling); //前置电流元件 插入前分区(el,第一个孩子分区); } }); 函数nextUntil(元素、选择器){ //设置兄弟数组 风险值=[]; //获取下一个同级元素 elem=elem.nextElementSibling; //只要有兄弟姐妹存在 while(elem){ //如果我们达到了目标 如果(元素匹配(选择器)) 打破 //否则,将其推送到同级阵列 兄弟姐妹。推(elem); //获取下一个同级元素 elem=elem.nextElementSibling; } 返回兄弟姐妹; } log(doc.body.innerHTML)