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

unwrap()/使用jQuery删除特定的HTML元素,jquery,html,Jquery,Html,我试图使用jQuery从这个HTML中删除strong元素,但无法使其正常工作(注意:这里的message_id实际上是PHP代码,但为了可读性,我删除了它): 重新排列后,但不起作用。由于该方法实际上删除了所选元素的父元素,您可能需要类似以下内容: $('#strong'+messageid).children().first().unwrap(); 但是,我不禁想知道,为什么它是用包装的元素,反之亦然?由于该方法实际上删除了所选元素的父元素,您可能需要这样的东西: $('#strong'+

我试图使用jQuery从这个HTML中删除strong元素,但无法使其正常工作(注意:这里的message_id实际上是PHP代码,但为了可读性,我删除了它):

重新排列后,但不起作用。

由于该方法实际上删除了所选元素的父元素,您可能需要类似以下内容:

$('#strong'+messageid).children().first().unwrap();
但是,我不禁想知道,为什么它是用
包装的
元素,反之亦然?

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

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

但是,我们不禁要问,为什么它是用
元素包装的
,反之亦然?

假设您想要
元素,那么您必须选择子元素,然后将其展开,以仅删除
\strongX
元素

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

假设您需要
元素,则必须选择子元素,然后将其展开以仅删除
\strongX
元素

$('#strong'+messageid).children().unwrap();
如果您的strong中有文本节点,请使用
内容
而不是
子节点


如果strong中有文本节点,请使用
内容
而不是
子元素

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

//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);

如果要保留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);

请用呈现的HTML替换PHP代码。$(“.comments layout”).unwrap();好的,我删除了php代码并重新设置了strong和p的范围,以获得良好的实践效果。请用呈现的HTML替换php代码。$(“.comments layout”).unwrap();好的,我删除了php代码并重新设置了strong和p的范围以获得良好的实践。我尝试了您的解决方案并重新排列了p和strong标记以获得良好的实践,但没有成功。@user1683645,它现在不应该工作,因为您现在已经更改了结构并为包装器元素重新分配了id。如果你能更详细地描述你的问题,那会很有帮助;在我看来,您可以在该元素的
innerHTML
上运行
。replace(/,“”)
。我尝试了您的解决方案,并重新排列了p和strong标记以获得良好的实践,但没有成功。@user1683645,它现在不应该工作,因为您现在已经更改了结构并为包装器元素重新分配了id。如果你能更详细地描述你的问题,那会很有帮助;在我看来,您可以在该元素的
innerHTML
上运行