我正在尝试使用jQuery从此HTML中删除强元素,但无法使其工作(注意:message_id这里实际上是PHP代码,但我删除了它以便于阅读):
<p class="comments-layout" id="strong_messageid"><strong>text</strong></p>
我试过了他的:
$('#strong'+messageid).children().first().unwrap();
重新排列后却没有工作。
答案 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);