我有一个如下所示:
<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实现?
答案 0 :(得分:6)
像这样使用,
$("#list li:eq(0)").before($("#list li:eq(1)"));
eq
选择器选择带索引的元素。然后,您可以使用before()
或after()
来更改位置。
答案 1 :(得分:5)
答案 2 :(得分:3)
尝试,
var lists = $('#list li');
lists.filter(':contains(2)').insertBefore(lists.filter(':contains(1)'));
或
var lists = $('#list li');
lists.filter(':nth-child(2)').insertBefore(lists.filter(':nth-child(1)'));
答案 3 :(得分:2)
答案 4 :(得分:1)
答案 5 :(得分:1)
如果你使用这样的html:
<ul id="list">
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
您可以使用after
/ before
或appendTo
/ 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>
答案 6 :(得分:1)
Demo试试这个,
alert($('li').eq(0).insertAfter($('li').eq(1)));