如何使用jQuery根据id来对div进行排序?

时间:2010-02-28 16:10:02

标签: jquery html sorting

我有一组带有随机ID的div:

<div id="container">
   <div id="2"></div>
   <div id="9"></div>
   <div id="7"></div>
   <div id="1"></div>
   <div id="4"></div>
</div>

有没有一种快速方法可以使用jQuery根据id值对它们进行排序? 谢谢。

3 个答案:

答案 0 :(得分:20)

我使用的是tinysort插件:

http://tinysort.sjeiti.com/

在你的情况下,它会是这样的:

$("#container > div").tsort("",{attr:"id"});

答案 1 :(得分:8)

有插件等可以对元素进行排序。如果你计划实际重新排序DOM元素,你应该使用其中一个。

如果您只想要一个div的排序列表,您可以使用Javascript - 因为可以使用自定义比较函数对数组进行排序。您可以使用<div>将选定的toArray()组转换为数组,然后使用此机制对它们进行排序。

$('#container > div').toArray().sort( function(a,b) { a.id - b.id } );

您还可以使用detach()appendTo()方法删除并按排序顺序重新插入元素。但是,这可能不是重新排序DOM元素的最有效方法。

答案 2 :(得分:0)

使用Underscore库尝试我的jquery插件$.toArrayouter

$('#container').html(_.sortBy($('#container>div').toArrayouter(),function (name) {return name} ).join(''))

演示:http://jsfiddle.net/abdennour/fDZjR/1/