JQuery - attach (duplicate, clone) li and put it above li

Is it possible to clone a specific <li> and put it above another specific <li>?
Any clue will help me ..?

HTML

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

Pseudo Javascript (jQuery)

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

HTML result

 <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> 
+4
source share
4 answers

You were very close, you wanted clone and insertBefore (and remember that eq is zero based):

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

Living example

+7
source
 $('#main ul li:eq(3)').clone().insertBefore('#main ul li:eq(2)'); 

Demo: http://jsfiddle.net/karim79/8LpuN/

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

Source: https://habr.com/ru/post/1334314/


All Articles