2013-05-16 147 views
5

我不想使用插件來排序我的表,如tablesorter,因爲它會是所需功能的開銷。按列排序表jquery

我想在加載頁面時只對表格排序一次我不希望該功能始終可用。

所以想象一下,如果我有i行,每行包含k列,並且k#2是我希望用於此排序的行,所以我的排序將基於此列以降序排列,我想對它們的行進行排序。

事情是這樣的:

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

這一個是verylightweight:http://joequery.github.io/Stupid- Table-Plugin/ – RaphaelDDL

+0

你想對它進行排序?班級名稱,身份證,文本值等...? – blackhawk

回答

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