2011-01-05 95 views
4

是否可以克隆特定的< li>並將其放在其他特定的< li>之上?
任何線索都會幫助我..?JQuery - 附加(複製,克隆)李並將其放在li上面

HTML

<div id="main"> 
<ul> 
<li>Item 1</li> 
<li>Item 2</li> 
<li>Item 3</li> 
<li>Item 4</li> 
</ul> 
</div> 

僞的Javascript(JQuery的)

$('#main ul li:eq(3)').duplicateAndPutAbove('#main ul li:eq(2)'); 

HTML結果

<div id="main"> 
<ul> 
<li>Item 1</li> 
<li>Item 3</li> <!-- Item 3 was duplicated (or cloned) and then putted ABOVE Item 2 --> 
<li>Item 2</li> 
<li>Item 3</li> 
<li>Item 4</li> 
</ul> 
</div> 

回答

7

你是真的接近,你想cloneinsertBefore(請記住eq是零基礎):

$('#main ul li:eq(2)').clone().insertBefore('#main ul li:eq(1)'); 

Live example

+0

@Chowder - 是appendTo如果你把它用正確的函數下李? – jmort253 2011-01-05 07:37:17

+0

@ jmort253:不,'insertBefore' - 我在按下按鈕後立即捕捉並修復它(在短暫的內存失效後 - 咖啡不足 - 這使我在'之前寫入')。衛生署! – 2011-01-05 07:38:29

+0

@Chowder - 太棒了!看起來很棒! – jmort253 2011-01-05 07:39:19

3
var elem = $('li').contains('3').clone(); // make a copy 
    $('li').contains('Item 3').before(elem); // insert before the cloned element 
0
$('#main ul li:eq(3)').clone().insertBefore('#main ul li:eq(2)');