Javascript 使用jQuery删除父项但保留子项
我希望使用jQuery删除父项并将子项保留在HTML中。这项工作:Javascript 使用jQuery删除父项但保留子项,javascript,jquery,Javascript,Jquery,我希望使用jQuery删除父项并将子项保留在HTML中。这项工作: $('#my_span').children().insertBefore('#my_span').end().end().remove(); 但是,它会删除文本和注释节点类型-如何修改它以保留文本 也很乐意使用纯Javascript实现这一点。您是否尝试过在jQuery库中使用该方法?如果它保留了文本和注释,您可以将代码缩减为: $('#my_span').unwrap(); 如果不希望删除所有子元素,可以使用以下修改的展
$('#my_span').children().insertBefore('#my_span').end().end().remove();
但是,它会删除文本和注释节点类型-如何修改它以保留文本
也很乐意使用纯Javascript实现这一点。您是否尝试过在jQuery库中使用该方法?如果它保留了文本和注释,您可以将代码缩减为:
$('#my_span').unwrap();
如果不希望删除所有子元素,可以使用以下修改的展开方法()扩展jQuery,该方法将用子元素替换元素:
$.fn.myUnwrap = function() {
this.parent(':not(body)').each(function(){
$(this).replaceWith( this.childNodes );
});
return this;
};
然后使用它会很容易:
$('#my_span').myUnwrap();
As@Cᴏʀʏ说,
unwrap()
应该能帮助你实现这一点
或者,您可以这样做:
$('#my_span').parent().html($('#my_span').html());
你可以试试
$($("#my_span")[0].inntHTML).insertBefore("#my_span");
$("#my_span").remove();
HTML:
HTML结果
<h2>headline</h2>
<p>Hallo Du!</p>
标题
你好,杜
我不再使用“展开”,因为对于不同的元素,例如有子元素的
ul
,我不想删除它们,但“展开”会删除它们。为了克服这个问题,我必须使用一个条件来检查它是什么类型的元素,然后计算出展开的深度,但这对我来说不起作用。你能告诉我们你正在使用的实际HTML吗?此外,
元素不能存在于
或
之外——如果将其展开,则应将其移除。
var my_span_Content = $("#my_span").contents();
$("#my_span").replaceWith(my_span_Content);
<h2>headline</h2>
<p>Hallo Du!</p>