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>
aaxxyyaaaxxxyyy
我想在头之前插入一个div容器,将下一个头之前的内容作为这个新div中的内容
aaxxyyaaaxxxyy
到目前为止,这就是我所做的
let s=“aaxxyyaaaxxxyy”;
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=“aaxxyyaaaxxxyy”;
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)代码>