Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否使用jQuery将一个列表项与另一个列表项交换?_Jquery - Fatal编程技术网

是否使用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 所以

有没有办法使用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="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');