如何使用Jquery更改列表元素的顺序?

时间:2014-07-01 05:17:01

标签: javascript jquery

我有一个如下所示:

<ul id="list">
    <li>1</li>
    <li>2</li>
    <li>3</li>
</ul>

如何使用Jquery更改列表元素的顺序?因此,在加载时,新列表应如下所示:

<ul id="list">
        <li>2</li>
        <li>1</li>
        <li>3</li>
</ul>

是否可以使用Jquery实现?

7 个答案:

答案 0 :(得分:6)

像这样使用,

$("#list li:eq(0)").before($("#list li:eq(1)"));

eq选择器选择带索引的元素。然后,您可以使用before()after()来更改位置。

Fiddle

答案 1 :(得分:5)

你的jquery会。 你可以使用insertBefore。

$('#list').find('li:eq(1)').insertBefore('li:eq(0)');

<强> DEMO

答案 2 :(得分:3)

尝试,

var lists = $('#list li');
lists.filter(':contains(2)').insertBefore(lists.filter(':contains(1)'));

DEMO

var lists = $('#list li');
lists.filter(':nth-child(2)').insertBefore(lists.filter(':nth-child(1)'));

DEMO

答案 3 :(得分:2)

无论项目数量多少,要使第一个最后一个:

$("#list li:last").after($("#list li:first"));

Demo

答案 4 :(得分:1)

   $("#list").prepend($("li:eq(1)"));

<强> DEMO

 $("li:eq(1)").prependTo("#list");

<强> DEMO

答案 5 :(得分:1)

如果你使用这样的html:

<ul id="list">
    <li>1</li>
    <li>2</li>
    <li>3</li>
</ul>

您可以使用after / beforeappendTo / prependTo来操作列表和其他DOM节点:

var $list = $('#list'),
    $items = $list.children(),
    $firstItem = $items.first();

//remove first item from DOM
$firstItem.detach();
//set first item after second
$items.eq(1).after($firstItem);

在此之后你将有这样的清单:

<ul id="list">
    <li>2</li>
    <li>1</li>
    <li>3</li>
</ul>

Fiddle

答案 6 :(得分:1)

Demo试试这个,

  alert($('li').eq(0).insertAfter($('li').eq(1)));