Here I would like to share the simple table sorting with you using my all time favorite jQuery library. The script is extremely easy to understand without use of any rocket science technique. Still your queries are always welcomed.
Now lets watch it working. Live Demo Download Script
jQuery Code
<script type="text/javascript" src="../jquery.js"></script> <script language="javascript"> $(document).ready(function() { $('table.sortable tbody tr:odd').addClass('odd'); $('table.sortable tbody tr:even').addClass('even'); var alternateRowColors = function($table) { $('tbody tr:odd', $table).removeClass('even').addClass('odd'); $('tbody tr:even', $table).removeClass('odd').addClass('even'); }; $('table.sortable').each(function() { var $table = $(this); alternateRowColors($table); $('th', $table).each(function(column) { if ($(this).is('.alphabetic')) { $(this).hover(function() { $(this).addClass('hover'); }, function(){ $(this).removeClass('hover'); }).click(function() { var sortOrder = $('table.sortable').data('order'); var rows = $table.find('tbody > tr').get(); if(sortOrder == 'd' || sortOrder == '') { $('table.sortable').data('order','a'); rows.sort(function(a, b) { var keyA = $(a).children('td').eq(column).text().toUpperCase(); var keyB = $(b).children('td').eq(column).text().toUpperCase(); if (keyA < keyB) { return 1; } if (keyA > keyB) { return -1; } return 0; }); } else { $('table.sortable').data('order','d'); rows.sort(function(a, b) { var keyA = $(a).children('td').eq(column).text().toUpperCase(); var keyB = $(b).children('td').eq(column).text().toUpperCase(); if (keyA < keyB) { return -1; } if (keyA > keyB) { return 1; } return 0; }); } $.each(rows, function(index, row) { $table.children('tbody').append(row); }); alternateRowColors($table); }); } }); }); }); </script>
HTML Code
<html> <head> <style> *{font-family:verdana; font-size:12px;} .alphabetic{background-color:#0033FF; color:#FFFFFF; line-height:25px; cursor:pointer; padding:5px;} .sortable, .sortable td{padding:5px;} .odd{background-color:#CCCCCC;} .even{background-color:#E6E6E6;} .hover{text-decoration:underline;} </style> </head> <body> <table class="sortable"> <thead> <tr> <th class="alphabetic">S.No.</th> <th class="alphabetic">Title</th> <th class="alphabetic">Author(s)</th> <th class="alphabetic">Publish Date</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>A</td> <td>X</td> <td>Feb 2007</td> </tr> <tr> <td>2</td> <td>C</td> <td>Z</td> <td>Dec 2006</td> </tr> <tr> <td>3</td> <td>B</td> <td>F</td> <td>Jan 2009</td> </tr> <tr> <td>4</td> <td>D</td> <td>J</td> <td>Apr 2010</td> </tr> </tbody> </table> </body> </html>
4 comments
Nice One!!
Hi! I just noticed that the date doesnt sort by date.. its being sorted alphabetically. How do i make this sort by date? Thanks.
http://learnwebscripts.com/simple-easy-dynamic-table-sorter-using-jquery
this sorter works good than this
Thanks jack for this info
We would love to hear from you...