30

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

<div>
    <span class="red">red text</span> some more text <span class="blue">blue text</span>
</div>

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

<div>
    red text some more text blue text
</div>

我尝试使用该unwrap()方法,但它打开了 div。我也尝试删除元素,但这会删除元素及其文本。

4

3 回答 3

87

jQuery 1.4+

你不想打开跨度,你想打开它的内容:

$("span").contents().unwrap();

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

jQuery 1.2+

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

$("span").replaceWith(function () {
    return $(this).text();
});

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

于 2010-02-22T01:53:57.623 回答
1

一个简单的$('#my-div').text ($('#my-div').text ())就够了,不诉诸拆包?

于 2010-02-22T02:22:27.217 回答
-1
$(mydiv).html($(mydiv).text()) 

应该做的伎俩。

于 2014-06-30T18:25:17.263 回答