jquery - javascript:Shifting the <li> -


i have 3 <li>

<li id="li_93_n:90" class="ligrid" data-upindex="" data-itemindex="'9001'" data-itemid="'93_n:90'" style=""> blah1</li> <li id="li_50_n:90" class="ligrid" data-upindex="" data-itemindex="'9002'" data-itemid="'50_n:90'" style=""> blah2</li> <li id="li_91_n:90" class="ligrid" data-upindex="" data-itemindex="'9003'" data-itemid="'91_n:90'" style=""> blah3</li> 

and have insert 1 more <li> @ second postion , have shift blah2 , blah3

<li id="li_80_n:90" class="ligrid" data-upindex="" data-itemindex="'9002'" data-itemid="'80_n:90'" style=""> blah-blah</li> 

and change data-itemindex of blah2 , blah3 9002 9003 and 9003 9004

in short terms have insert new <li> in between , shift there.

$("li:first") first li tag,then can use .after() add li after the selected tag.

$("li:first").after($("<li/>", {     class: "ligrid",     "data-itemindex": "9002",     html: "blah2" })); var itemindex = 9001; $("li").each(function (i) {     $(this).attr("data-itemindex", itemindex + i); }); 

then need reassign itemindex of every li tags

demo

edit use code dynamic postions

var position = 2; $("li:gt(" + (position-1) + ")").each(function (i) {     var datavalue = parseint($(this).attr("data-itemindex"))+1;      $(this).attr("data-itemindex", datavalue); }); $("li").eq(position-1).after($("<li/>", {     class: "ligrid",     "data-itemindex": parseint($("li").eq(position-1).attr("data-itemindex")) + 1,     html: "blah122" })); 

updated fiddle


Comments

Popular posts from this blog

windows - Single EXE to Install Python Standalone Executable for Easy Distribution -

c# - Access objects in UserControl from MainWindow in WPF -

javascript - How to name a jQuery function to make a browser's back button work? -