使用jQuery按列排序表格

6
我不想使用插件来对我的表格排序,例如tablesorter,因为它会给所需功能带来额外的负担。
当页面加载时,我只想对表格进行一次排序,而不想一直提供此功能。
所以,假设我有i行,每行包含k列,其中第k列是我想用于排序的列,我希望按降序基于此列对它们的行进行排序。
类似于这样:
        var $rows = $("#score-table tr");
            $.each($rows, function(index, row) {
                //sort table
            });

这个非常轻量级:http://joequery.github.io/Stupid-Table-Plugin/ - RaphaelDDL
你想按什么排序?类名、ID、文本值等等? - klewis
1个回答

14

如果您知道您正在排序的列,您可以使用JavaScript的sort函数轻松地对表格进行排序。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接