2013-05-16 2 views
5

Я бы не хотел использовать плагин для сортировки моей таблицы, такой как tablesorter, потому что это было бы накладными расходами для желаемой функциональности.Сортировка таблиц по столбцам jquery

Я хочу отсортировать таблицу только один раз, когда страница загружена. Я не хочу, чтобы эта функция была доступна все время.

Итак, представьте, если у меня есть строки, каждая из которых содержит 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

Смежные вопросы