0

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

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

我试过他的:

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

重新安排后,但没有工作。

4

4 回答 4

2

假设您想要该<p>元素,则必须选择子元素,然后打开它以仅删除该#strongX元素。

$('#strong'+messageid).children().unwrap();
于 2012-10-26T15:31:03.123 回答
1

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

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

但是,不禁想知道,为什么它是<p>element 包裹的<strong>,反之亦然?

于 2012-10-26T15:30:34.447 回答
1
$('#strong'+messageid)
    .children()
    .insertAfter( $('#strong'+messageid) );
$('#strong'+messageid).remove();

如果您在强烈使用中使用文本节点contents而不是children

于 2012-10-26T15:31:35.597 回答
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);
于 2012-10-26T16:50:11.133 回答