Javascript 元件的质量更换

Javascript 元件的质量更换,javascript,jquery,Javascript,Jquery,我试图将某个元素中的所有子元素替换为DIVs 我的结构如下: <div id="wrapper"> <span> <span> <span> <span></span> <span></span> </span> </span>

我试图将某个元素中的所有子元素替换为DIVs

我的结构如下:

<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>");
    }
}