使用.replaceWith删除<p>标签,但将内容保留在标签内?</p>

时间:2013-08-17 15:39:01

标签: jquery css html-table

我有一个表单元格,其中包含用<p>标记包装的内容:

<td class=" address"><p>
    Content goes here
</p></td>

我希望删除<p>代码,因此它看起来像这样:

<td class=" address">
    Content goes here
</td>

我尝试了以下jQuery,但它没有用。有人能指出我正确的方向吗?

$('.address p').replaceWith('');

4 个答案:

答案 0 :(得分:11)

尝试:

$('.address p').contents().unwrap();

示例: http://jsfiddle.net/6zAN7/34/(使用div代替td,但概念应该相同)

说明:

contents获取段落标记内的元素(包括文本元素),然后在这些文本元素上调用unwrap,删除父p标记。

答案 1 :(得分:1)

$(function() {
    $("td.address > p").contents().unwrap();
});

答案 2 :(得分:1)

$('.address p').replaceWith(function() {
    return $(this).html();
});

<强> jsFiddle example

答案 3 :(得分:1)

我会使用.unwrap()方法

$('p').contents().unwrap();

从DOM中删除匹配元素集的父元素,将匹配的元素留在原位。