Javascript 元件的质量更换
我试图将某个元素中的所有子元素替换为DIVs 我的结构如下:Javascript 元件的质量更换,javascript,jquery,Javascript,Jquery,我试图将某个元素中的所有子元素替换为DIVs 我的结构如下: <div id="wrapper"> <span> <span> <span> <span></span> <span></span> </span> </span>
<div id="wrapper">
<span>
<span>
<span>
<span></span>
<span></span>
</span>
</span>
</span>
</div>
但是,这不起作用,因为当它尝试更改N+1元素时,它不存在,因为它在执行第N个元素时被替换。N+1是N的后代,因此在更改N的.html()
时会发生更改。保留元素属性在这里不是问题
如何将所有子跨度更改为div?您不应该在替换的元素中使用html内容,而是需要向其中添加dom元素
函数替换元素($element){
$element.find(“*”).replaceWith(函数(){
返回$(''){
html:this.childNodes
});
})
}
replaceElements($(“#包装器”)
1.
2.
3.
4.
5.
所有元素真的那么简单吗?(没有属性,只有标准标记)?为什么不获取整个包装内容并替换每个span元素,然后使用$('#wrapper').html(newContent)?在我单击“Post”按钮之前,问题被锁定,但如果这真的是您所需要的,那么做起来非常简单:var w=document.getElementById('wrapper');w、 innerHTML=w.innerHTML.replace(/
function replaceElements($element){
var children = $element.find("*");
var current;
for(var i=0; i<children.length; i++){
current = $(children[i]);
current.replaceWith("<div>" + current.html() + "</div>");
}
}