如何使用JQuery对包含数字内容的列表进行排序(排序)
我有一个动态创建的列表:
- 20
- 10
- 5
- 3
- 32
- 25
- 6
- 12
- 8
是否可以使用JQuery订购此列表? 我需要它从低到大排序,像这样:
- 3
- 5
- 6
- 8
- 10
- 12
- 20
- 25
- 32
谢谢你的帮助!
下面应该做的伎俩,
DEMO
$(function () { var liContents = []; $('ul li').each (function () { liContents.push(parseInt($(this).text(), 10)); }); liContents.sort(numOrdDesc); $('ul li').each (function () { $(this).text(liContents.pop()); }); }); function numOrdDesc(a, b){ return (ba); }
var li = $('ul li'); li.sort(function(a, b) { if(parseInt($(a).text()) > parseInt($(b).text())) return 1; else return -1; }); $('ul').empty().html(li);
还有jQuery插件来处理这个问题。 查看TinySort
$(function(){ var elems = $('ul').children('li').remove(); elems.sort(function(a,b){ return parseInt($(a).text()) > parseInt($(b).text()); }); $('ul').append(elems); });
例子 。
var listItems = []; $("#list li").each(function() { listItems.push(parseInt($(this).text())); }); listItems.sort(function(a,b){return a - b}); $("#list").html(""); $.each(listItems, function(i, v) { $("#list").append($("" + v + " ")); });
见: http : //jsfiddle.net/46J5u/1/
使用sortContent插件,一切都将变得简单, 干净并且可以重复使用:
$('ul').sortContent({helper:myhelper});
已知:
myhelper=function(e){ return $('a',$(e)).attr('href'); }
DEMO
如果您想了解其他选项,请访问Plugin HOMEPAGE