2013-05-31 70 views
0

我想把一個li變成一個div。我可以使用.html()成功獲取li的內部HTML,但是我不能然後.wrap()返回的內容在div。我得到錯誤「longHTMLstring沒有方法換行」。JQuery- .wrap()一個元素的html

這裏是我的加價:

<li class="ui-draggable"> 
    <h1>Some text</h1> 
    <p>Some more text</p> 
</li> 

我試圖將其轉換成:

<div> 
    <h1>Some text</h1> 
    <p>Some more text</p> 
</div> 

這裏是jQuery的我試圖使用方法:

var s = $('.ui-draggable').html(); 
s.wrap("<div>"); 

我我試圖用各種配置來鏈接它,但是現在我將它分解成最清晰的塊來試圖解決這個問題。

完整的錯誤我得到的是

"Uncaught TypeError: Object <h1>Some text</h1> <p>Some more text</p> has no method wrap". 

所以我想我的問題是,.html()是給我一個對象的時候,我需要一個字符串?我需要做一些嵌套的.clone()鏈接的東西來管理?

+1

'.html()'方法將返回**字符串**,您可以**不**使用jQuery方法(如'wrap')。 – 2013-05-31 09:54:24

回答

0

嘗試

$('.ui-draggable').wrapInner('<div />').children().unwrap() 

演示:Fiddle

+0

** + 1 **很好的解決方案+不錯的jsFiddle標題(SO-ID)';)'。 – 2013-05-31 10:03:45

+0

這一個作品,謝謝! – Ila

0

Working jsFiddle Demo

Chaning li元素div元素,在HTML無效(如你總是使用li項目和olul)。 購買的方式,將可能:

$('.ui-draggable').contents().unwrap().wrapAll('<div>'); 

參考文獻: