我有一组带有随机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值对它们进行排序? 谢谢。
答案 0 :(得分:20)
我使用的是tinysort插件:
在你的情况下,它会是这样的:
$("#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(''))