Skip to content
Github fork of Christian Bach's tablesorter plugin + awesomeness ~
JavaScript CSS HTML
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


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.

See the full documentation



  • Multi-column sorting.
  • Parsers for sorting text, alphanumeric text, URIs, integers, currency, floats, IP addresses, dates (ISO, long and short formats) & time. Add your own easily
  • 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+.
  • Small code size.
  • Works with jQuery 1.2.3+


Included all original document pages with updates from my blog post on undocumented options.


Change Log

View the complete listing here.

Version 2.0.26 (2012-1-30)

  • Widgets should no longer be applied twice when an initial sort direction is added. Fix for issue #21.
  • Modified Green theme:
    • The Green theme sort direction icon is now applied to only the first span it encounters inside the header. The UI theme adds a second span for it's icon.
    • Essentially to fix this demo which allows switching between all of the themes.
  • Modified the UI theme to now add a div that wraps all of the header cell content to allow positioning of the sort direction icon.

Version (2012-1-27)

  • Changed Blue theme to vertically align arrows. Fix for issue #12.
  • Fixed sticky header widget so varing width columns now update when the pager plugin changes pages. Thanks to locationRoura for reporting this issue.

Version (2011-12-15)

  • Fixed disabled column style for the ui theme widget. Thanks to bbbco for the fix in issue #17.

Version 2.0.25 (2011-12-14)

  • The ui theme and sticky header widgets now work together and update the arrow direction. Fix for issue #15.
  • Empty cells with only a tab or space will now sort at the bottom. Thanks to pursual for the fix for issue #16.

Version 2.0.24 (2011-12-12)

  • Modified empty cell sorting to always sort at the bottom. Fix for issue #14.
  • Updated the sticky header widget to line up properly with the UI theme. Fix for issue #13.

Version (2011-12-6)

  • Updated the sticky header widget again to not interfere with the filter widget. Fix for issue #10.

Version (2011-12-6)

  • Updated the sticky header widget to reposition the sticky header when scrolling left. Fix for issue #9.

Version (2011-11-7)

  • Updated the filter widget:
    • Changed filter input from visibility hidden to display none. Fix/enhancement from issue #7.
    • Modified the widget to better work with child rows. Added the widgetFilterChildRows option. Fix for issue #8.
    • When widgetFilterChildRows is true, all child row content is included in the row filtering; if false, the child row content is ignored.
  • Added tableClass to the documents. Apparently I forgot to add it before.
  • Added a note to the filter demo bringing up issue #6.
  • Miscellaneous updates to the documents.

Version (2011-10-28)

  • Fixed pager size & total pages not being retained after destroying, then restoring the pager. Thanks to crush123 for reporting the problem!

Version (2011-10-26)

  • Fixed the pager plugin to prevent errors when initialized on an empty table. Fix for issue #5.
  • Added a Resizable Column widget
    • At this time, this widget allows resizing the column widths from the header.
    • The column widths are not saved, but if I did consider saving the widths to local storage. I just didn't get around to doing it.
    • Demo page added.
  • Reorganized the next demo links, located at the bottom of every demo page, to match the order on the main document page.
Something went wrong with that request. Please try again.