2013-05-16 21 views
5

Non vorrei utilizzare il plugin per ordinare la mia tabella come ad esempio tablesorter perché sarebbe un overhead per la funzionalità desiderata.Ordinamento di tabelle per colonne jquery

Desidero ordinare la tabella una sola volta quando la pagina è caricata Non voglio che questa funzionalità sia sempre disponibile.

Quindi immaginate di avere tutte le righe contenenti k colonne e k # 2 è quello che voglio usare per questo ordinamento, quindi il mio ordinamento sarebbe basato su questa colonna in ordine decrescente Voglio ordinare le loro righe.

Qualcosa di simile a questo:

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

Questo è verylightweight: http://joequery.github.io/Stupid- Table-Plugin/ – RaphaelDDL

+0

cosa vuoi ordinare? nome della classe, id, valore del testo, ecc ...? – blackhawk

risposta

14

Beh, se si conosce quale colonna si ordina su di voi può facilmente ordinare la tabella utilizzando 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); 

Se si vuole ascendente basta invertire le > e <

se sono solo i numeri si può solo fare a-b per ordine crescente o decrescente per b-a

dopo l'ordinamento è completo solo aggiungerla di nuovo al corpo e il vostro fatto

FIDDLE

Problemi correlati