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

时间:2010-02-22 01:51:28

标签: javascript jquery dom-manipulation

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

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

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

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

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

3 个答案:

答案 0 :(得分:82)

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

答案 1 :(得分:1)

如果不采用解包方式,那么简单的$('#my-div').text ($('#my-div').text ())是否足够?

答案 2 :(得分:-1)

$(mydiv).html($(mydiv).text()) 

应该这样做。