Skip to content
This repository

Github fork of Christian Bach's tablesorter plugin + awesomeness ~

tablesorter is a jQuery plugin for turning a standard HTML table with THEAD and TBODY tags into a sortable table without page refreshes. tablesorter can successfully parse and sort many types of data including linked data in a cell.




  • Multi-column alphanumeric sorting and filtering.
  • Multi-tbody sorting - see the options table on the main document page.
  • Supports Bootstrap v2 and 3
  • Parsers for sorting text, alphanumeric text, URIs, integers, currency, floats, IP addresses, dates (ISO, long and short formats) & time. Add your own easily.
  • Inline editing - see demo
  • Support for ROWSPAN and COLSPAN on TH elements.
  • Support secondary "hidden" sorting (e.g., maintain alphabetical sort when sorting on other criteria).
  • Extensibility via widget system.
  • Cross-browser: IE 6.0+, FF 2+, Safari 2.0+, Opera 9.0+, Chrome 5.0+.
  • Small code size, starting at 25K minified
  • Works with jQuery 1.2.6+ (jQuery 1.4.1+ needed with some widgets).
  • Works with jQuery 1.9+ ($.browser.msie was removed; needed in the original version).


Special Thanks

  • Big shout-out to Nick Craver for getting rid of the eval() function that was previously needed for multi-column sorting.
  • Big thanks to thezoggy for helping with code, themes and providing valuable feedback.
  • Big thanks to ThsSin- for taking over for a while and also providing valuable feedback.
  • Also extra thanks to christhomas and Lynesth for help with code.
  • And, of course thanks to everyone else that has contributed, and continues to contribute to this forked project!

Change Log

View the complete listing here.

Version 2.15.14 (4/10/2014)

  • Modified bower.json to allow "read-components" compatibility. See PR #573
  • Corrected docs:
    • Filter-external doc error. Fixes issue #571
    • Added pager ajaxProcessing documentation about extra values available for the output. Fixes issue #576.
    • Grouping widget demo update (now uses collapsible table for options)
  • Core: Destroy method update

    • When including a false parameter with the destroy method, class names will be left intact as before. But this now includes the reapplying of the uitheme and zebra widgets.

      $("table").trigger("destroy", [false]);
    • This change will maintain the table's appearance.

    • See this Stackoverflow question for why this change was made.
  • Grouping widget: group name now saves after callback. Fixes issue #514.
  • Pager processAjaxOnInit now works with jQuery objects. Fixes issue #572.
  • Filter widget: getFilters will not cause a js error when it targets a non-tablesorter table.

Version 2.15.13 (4/3/2014)

  • Core:
    • Fix widgets not being applied after an update.
    • Ignore child row class name if it is the first table row
  • Filter widget ignores info tbodies again. Fixes issue #568
  • Docs: show resizable widget update
  • Bootstrap theme:
    • Fix zebra highlighting for child rows
    • Thanks to ilyai - PR #567

Version 2.15.12 (3/31/2014)

  • Replaced references to cell.cellIndex with $(cell).index()
    • Prevents an error in IE8
    • Thanks sylvain-hamel!
    • Fixed merge issues, then modified code to minize use of this indexing
    • Cell column property has correct value again.
    • Fixes issue #554
  • Fix docs so nested accordions open with hash.
  • Child row updates
    • Added tablesorter-hasChildRow class name to all parents of child rows.
    • Added .tablesorter .filtered { display: none; } to every included theme; needed to properly hide child rows
    • Fixed pager so that if the last pager row has any child rows, they are now included. Fixes part of issue #396.
    • Fixes issue #556.
  • Add resizable_widths option
    • Set the default & reset header widths using this option
    • Fixes issue #555.
  • I apologize for the last version error... it is set to 2.5.11 instead of 2.15.11 in the git repo tag. It is correct everywhere else.

Version 2.15.11 (3/18/2014)

  • Updated Bootstrap to v3.1.1
  • Check if cell has parser to catch undefined error. Fixes issue #546. Thanks antila!
  • Column count is now correct with nested tables (with tfoot). Fixes issue #547.
  • Fix table reset on pagination change. Fixes issue #548. Thanks evanboho!

Version 2.15.10 (3/13/2014)

  • Fix numberSorter option causing a javascript error & added test.
Something went wrong with that request. Please try again.