按列jquery对表进行排序

时间:2013-05-16 12:58:12

标签: javascript jquery

我不想使用插件对tableorter这样的表进行排序,因为它会成为所需功能的开销。

我想在加载页面时只对表格进行一次排序我不希望该功能始终可用。

所以想象一下,如果我有i行,每行包含k列,而k#2是我想要用于此排序的那一行,所以我的排序将基于此列按降序排列,我想对它们的行进行排序。

这样的事情:

        var $rows = $("#score-table tr");
            $.each($rows, function(index, row) {
                //sort table
            });

1 个答案:

答案 0 :(得分:14)

如果您知道要排序的列,则可以使用javascript sort function

轻松对表格进行排序
var $tbody = $('table tbody');
$tbody.find('tr').sort(function(a,b){ 
    var tda = $(a).find('td:eq(1)').text(); // can replace 1 with the column you want to sort on
    var tdb = $(b).find('td:eq(1)').text(); // this will sort on the second column
            // if a < b return 1
    return tda < tdb ? 1 
           // else if a > b return -1
           : tda > tdb ? -1 
           // else they are equal - return 0    
           : 0;           
}).appendTo($tbody);

如果您想提升,只需撤销><

即可

如果它们只是数字,您可以a-b升序或b-a降序

排序完成后,只需将其附加回身体并完成

FIDDLE