[英]Remove parent but keep children using jQuery
我想刪除父項並使用jQuery將子項保留在我的HTML中。 這有效:
$('#my_span').children().insertBefore('#my_span').end().end().remove();
但是,它刪除了文本和注釋節點類型 - 我如何修改它以便保留文本?
很高興用純Javascript做到這一點。
您是否嘗試在jQuery庫中使用unwrap()
方法? 如果它保留了文本和注釋,您可以將代碼減少到:
$('#my_span').unwrap();
如果你不想刪除所有的子節點,你可以使用以下修改的unwrap方法擴展jQuery( 在這里找到 ),它將用它的子節點替換一個元素:
$.fn.myUnwrap = function() {
this.parent(':not(body)').each(function(){
$(this).replaceWith( this.childNodes );
});
return this;
};
然后使用它會很容易:
$('#my_span').myUnwrap();
正如@Cᴏʀʏ所說,unwrap unwrap()
應該可以幫助你實現這個目標。
或者,您可以這樣做:
$('#my_span').parent().html($('#my_span').html());
HTML:
<div id="my_span">
<h2>headline</h2>
<p>Hallo Du!</p>
</div>
JS / jQuery的
var my_span_Content = $("#my_span").contents();
$("#my_span").replaceWith(my_span_Content);
HTML結果
<h2>headline</h2>
<p>Hallo Du!</p>
你可以試試
$($("#my_span")[0].inntHTML).insertBefore("#my_span");
$("#my_span").remove();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.