使用jQuery对listview进行排序?

这里的代码只是按升序对li项进行排序。如何使用此代码按升序和降序排序

  • 标签

    function sort(list, key) { $($(list).get().reverse()).each(function (outer) { var sorting = this; $($(list).get().reverse()).each(function (inner) { if ($(key, this).text().localeCompare($(key, sorting).text()) > 0) { this.parentNode.insertBefore(sorting.parentNode.removeChild(sorting), this); } }); }); } 

     window.onload = function () { var desc = false; document.getElementById("stCodeDSC").onclick = function () { // sortUnorderedList("list3", desc); sort('ul.conn1>li', 'td.code1'); desc = !desc; return false; } 

    有什么建议吗?

    编辑:如果我给<0然后它按降序排序..

    EDIT2:

     $(document).ready(function() { var desc = false; document.getElementById("stCodeDSC").onclick = function () { // sortUnorderedList("list3", desc); sort('ul.conn>li', 'td.code'); desc = !desc; return false; } document.getElementById("stNameDSC").onclick = function () { // sortUnorderedList("list3", desc); sort('ul.conn>li', 'td.name'); desc = !desc; return false; } }); 

    jQuery插件怎么样:

     function elemLocaleCompare(left, right) { return $(left).text().localeCompare($(right).text()); } $.fn.extend({ sortList: function(order) { return this.each(function() { var $list = $(this), li = $list.children("li").toArray().sort(elemLocaleCompare); if (li.length == 0) return true; order = order || $list.data("nextOrder") || "asc"; if (order == "asc") $list.append(li).data("nextOrder", "desc"); else $list.append(li.reverse()).data("nextOrder", "asc"); }); } }); 

    使用如下:

     $("ol").sortList("asc"); // or... $("#someList").sortList(); // initial sort order, "asc" is default $("#someButton").click(function () { $("#someList").sortList(); // no argument -> toggle sort order });​