2013-05-16 3 views
5

Je ne voudrais pas utiliser le plugin pour trier ma table, par exemple celle de tablesorter, car ce serait une surcharge pour les fonctionnalités souhaitées.Tri des tables par colonnes jquery

Je ne souhaite trier ma table qu'une seule fois lorsque la page est chargée Je ne souhaite pas que cette fonctionnalité soit disponible en permanence. Imaginez donc si j'ai i lignes contenant chacune k colonnes et k # 2 est celui que je veux utiliser pour ce tri afin que mon tri serait basé sur cette colonne dans l'ordre décroissant je veux trier leurs lignes.

Quelque chose comme ceci:

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

Celui-ci est verylightweight: http://joequery.github.io/Stupid- Table-Plugin/ – RaphaelDDL

+0

Que voulez-vous trier par? nom de classe, id, valeur de texte, etc ...? – blackhawk

Répondre

14

Eh bien, si vous savez quelle colonne vous triez sur vous pouvez facilement trier la table en utilisant le javascript de 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); 

Si vous voulez vous monter avez juste à inverser le > et <

Si ce ne sont que des chiffres, vous pouvez simplement faire a-b pour monter ou descendre b-a pour

Une fois le tri est terminé append juste de retour au corps et votre fait

FIDDLE