是否使用jQuery将一个列表项与另一个列表项交换?
有没有办法使用jQuery将一个列表项与另一个列表项交换 假设这个列表:是否使用jQuery将一个列表项与另一个列表项交换?,jquery,Jquery,有没有办法使用jQuery将一个列表项与另一个列表项交换 假设这个列表: <ul> <li id="1"></li> <li id="2"></li> <li id="3"></li> <li id="4"></li> <li id="5"></li> </ul> 如何将项目2更改为项目4 所以
<ul>
<li id="1"></li>
<li id="2"></li>
<li id="3"></li>
<li id="4"></li>
<li id="5"></li>
</ul>
如何将项目2更改为项目4
所以
<ul>
<li id="1"></li>
<li id="4"></li>
<li id="3"></li>
<li id="2"></li>
<li id="5"></li>
</ul>
有没有不使用绝对定位的方法?您可以查看名为“Sortable”的jQuery库。您可以在此处阅读并观看现场演示: 只是为了好玩:
$.fn.swap = function(elem) {
var elem = $(elem),
before = elem.prev();
this.after(elem);
before.after(this);
};
$('#2').swap('#4');
请更具体地说明您希望如何在单击时更改此项,等等。假设,我单击了一段时间,将列表项2与列表项4交换。更改位置或更改内容?请告诉我。它的用途非常广泛,不仅限于列表。我已经使用它对div和表进行了排序。这可能不是JQUERY想要的工作方式,但这是一种非常聪明的方式!我假设OP知道他想交换的两个元素的ID,但不一定知道兄弟元素的ID$(“#5”)。在($(“#1”)之后插入代码>
var lis = $('ul li');
lis.eq(3).after(lis.eq(1)).end().eq(0).after(lis.eq(3));
$.fn.swap = function(elem) {
var elem = $(elem),
before = elem.prev();
this.after(elem);
before.after(this);
};
$('#2').swap('#4');