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
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" }));
Comments
Post a Comment