2012-06-28 68 views
4

我想刪除一個div元素,但沒有它的子元素。例如,假設我有一個帶有id包裝的div,裏面有5個段落。如何刪除沒有內部元素的div

我想只刪除包裝div,但留下段落活着。我試過remove()和detach(),但是它們都清除了內部元素。

有什麼建議嗎?

+1

較早的問題,可能與過時的答案:http://stackoverflow.com/questions/2032317/how-can-i-remove-a-surrounding-div-with-jquery –

回答

13

http://api.jquery.com/unwrap/應該這樣做:

.unwrap()方法移除元素的父。這實際上是.wrap()方法的反面。匹配的元素(和他們的兄弟姐妹,如果有的話),DOM結構內更換他們的父母......

4

退房.replaceWith()

$('#theDiv').replaceWith($('#theDiv').contents()); 
+0

你是救世主。我使用的是一個CMS,它傾向於將包裝div添加到通過HTML編輯器添加的任何內容中。但它弄亂了我絕對定位的元素,所以我需要刪除它。 – suludi

+0

Uku的解決方案看起來更好 –

6

jsFiddle demo

$('#element').contents().unwrap(); 
+0

太遲了...... :) –

+0

可能是@Robert,但只是'.unwrap()'你什麼都不做(如果你使用'parent'作爲選擇器)。 –

0
$('#yourdivIDtoremove').replaceWith($(this).text()); 

應該做的;)

+0

四分鐘前有人已經提供了'replaceWith'回答。 –

+0

'text()'將清除html標籤 – charlietfl

+0

是的,他想刪除div標籤 –

相關問題