unwrap()/使用jQuery删除特定的HTML元素

时间:2012-10-26 15:28:35

标签: jquery html

我正在尝试使用jQuery从此HTML中删除强元素,但无法使其工作(注意:message_id这里实际上是PHP代码,但我删除了它以便于阅读):

<p class="comments-layout" id="strong_messageid"><strong>text</strong></p>

我试过了他的:

$('#strong'+messageid).children().first().unwrap();
重新排列后却没有工作。

4 个答案:

答案 0 :(得分:2)

假设您需要<p>元素,则必须选择子元素,然后将其解包以仅删除#strongX元素。

$('#strong'+messageid).children().unwrap();

答案 1 :(得分:1)

由于.unwrap方法实际上删除了所选元素的父元素,因此您可能需要这样的内容:

$('#strong'+messageid).children().first().unwrap();

不禁疑惑,为什么<p>元素包含在<strong>中,反之亦然?

答案 2 :(得分:1)

$('#strong'+messageid)
    .children()
    .insertAfter( $('#strong'+messageid) );
$('#strong'+messageid).remove();

如果你在强力使用contents而不是children

中有文字节点

答案 3 :(得分:0)

如果您想保留p元素但只删除周围的强标记,可以尝试:

//get the DOM elements contained within the strong tag first then replace the strong tag
//with these elements
$element_contents = $('#strong'+  $messageid).contents();
$('#strong'+  $messageid).replaceWith($element_contents);