使用jQuery删除元素但保留文本

lom*_*axx 29 javascript jquery dom-manipulation

我有一些看起来像这样的HTML:

<div>
    <span class="red">red text</span> some more text <span class="blue">blue text</span>
</div>
Run Code Online (Sandbox Code Playgroud)

我想要做的是使用jQuery删除div中的所有跨度而不管附加的类,但是将文本留在span标记中.所以最终结果将是:

<div>
    red text some more text blue text
</div>
Run Code Online (Sandbox Code Playgroud)

我试图使用该unwrap()方法,但它解开了div.我也尝试删除元素,但删除元素及其文本.

Sam*_*son 83

jQuery 1.4+

您不想打开跨度,要打开其内容:

$("span").contents().unwrap();
Run Code Online (Sandbox Code Playgroud)

在线演示:http://jsbin.com/iyigi/edit

jQuery 1.2+

对于早期版本的jQuery,您可以执行以下操作:

$("span").replaceWith(function () {
    return $(this).text();
});
Run Code Online (Sandbox Code Playgroud)

在线演示:http://jsbin.com/iyigi/40/edit