2011-01-05 46 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)');