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.
- Because of the change to the internal cache, the tablesorter v2.16+ core, filter widget and pager (both plugin & widget) will only work with the same version or newer files.
- See the full documentation.
- All of the original document pages have been included.
- Information from my blog post on undocumented options and lots of new demos have also been included.
- Change log moved from included text file into the wiki documentation.
- Basic alpha-numeric sort Demo.
- Links to demo pages can be found within the main documentation.
- More demos & playgrounds - updated in the wiki pages.
- 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).
- Copyright (c) 2007 Christian Bach.
- Original examples and docs at: http://tablesorter.com.
- Dual licensed under the MIT and GPL licenses.
- Plugin for Rails. Maintained by themilkman.
- PHP templating engine for tablesorter by alexweissman.
- 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!
- Check the FAQ page.
- Search the main documentation (click the menu button in the upper left corner).
- Search the issues to see if the question or problem has been brought up before, and hopefully resolved.
- If someone is available, ask your question in the
#tablesorter
IRC channel at freenode.net. - Ask your question at Stackoverflow using a tablesorter tag.
- Please don't open a new issue unless it really is an issue with the plugin, or a feature request. Thanks!
View the complete listing here.
Version 2.18.2 (11/3/2014)
-
Filter widget
- Fixed initialization intermittently stalling.
-
Pager addon & widget
- Fixed pager addon javascript error.
- Fixed pager widget not firing off "pagerComplete" in non-ajax tables.
- Fixed
savePages
being overwritten on initialization. - Fixed pager widget updating the table content in non-ajax tables.
Version 2.18.1 (11/3/2014)
-
Core
- Add
cssAllowClicks
option; setting "tablesorter-allowClicks" on a header cell will allow clicks to bubble up. - A column can now be targetted using a class name within the header cell as well as the header cell itself; this only applies to previous options that could use a class name/id to target the header cell.
- Add
-
Docs
- Emphasize that this is a fork of tablesorter. Fixes issue #758.
- Update jQuery UI to 1.11.2.
- Update to Bootstrap 3.3.0.
- Update QUnit & fixed testing errors.
- Various updates to version numbers & corrections.
-
ColumnSelector widget:
-
CssStickyHeaders widget:
- Fixed Chrome caption issue.
- Nested tables now work properly in IE.
-
Pager addon & widget
- Fix
selectorRemove
class name parseing. - A
pagerComplete
event now fires off immediately after initialization & once again fires on non-ajax tables. - Fix double
pagerComplete
events firing on init & initial filter settings. - Fix pager initialization with filter widget & displaying page output. Fixes issue #755 & issue #757.
- Current filters now update properly. See issue #757.
- Fix
-
UItheme widget:
- Fixed undefined removeClass selector which previously removed all classes.
Version 2.18.0 (10/26/2014)
- Core
- Move "ipAddress" parser into
parser-network.js
parser file. - Add "image" parser to core.
- Add
widgetClass
option- Allows adding widgets to the table by adding a table class name.
- Fix debug logs for applying widgets.
- Fixes issue #743.
- Add
$cell
parameter to parser detectionis
function (is: function(s, table, cell, $cell) { /* ... */ }
). - Add
$table
parameter toonRenderHeader
function (onRenderHeader: function (index, config, $table){ /* ... */ }
). - Fix ARIA caption label reference.
- Get column index from data-attribute when sorting.
- The
aria-labelledby
attribute is no longer to all nested captions. - Update
widgetClass
option matching. See issue #743.
- Move "ipAddress" parser into
- Themes
- Include caption element in metro theme; update various demo theme selectors to include the metro theme.
- Fix zebra striping in nested tables.
- Parsers
- Created
parser-network.js
parser- Removed "ipAddress" parser from core.
- Move "ipAddress" parser into this file; a duplicate of the parser named "ipv4Address" is included.
- Moved "ipv6Address" parser into this file.
- Added new MAC parser.
- Update all date parsers to ensure a valid date is being parsed.
- Add named number parser & demo.
- Created
- Column Selector widget
- Prevent adding a media query when no priorities are set.
col
element will now be hidden along with the column. Fixes issues #740.
- Editable widget
- Make updatable so this widget works with the pager. Fixes issue #732.
- Filter widget
- Fix wildcard match logic to behave logically. Fixes issue #727.
- Add
filter_cellFilter
option. Fixes issue #731. - External inputs can now target multiple columns (e.g.
data-column="0-2,4,6-7"
); see this Stackoverflow question. - Any match filters now properly uses
filter_ignoreCase
. Fixes issue #748. - Fix saved filter updates to multiple or "any" column inputs.
- Grouping widget
- Add "monthyear" grouping to dates. Fixes issue #744.
- Pager addon & widget
- Use a sample of page number links for large collections.
- Fix ouput display not updating on initialization.
- Add url check to allow ajax updating of table. Fixes issue #730.
- Check for dynamically changing
ajaxUrl
option. - Add
ajaxObject
to thetable.config.pager
variable. - IE requires a value attribute for every option. Fixes issue #734.
- Revert some code modified for large collections to use jQuery instead of native javascript (more IE issues).
- Ensure
pager.filteredRows
is current on page move. See issue #745. - Fix empty table select showing 0 & 1 pages.
- The
fixedHeight
option is now working properly. Fixes issue #742 & issue #729. - Widget cleanup & only use the last search data.
- Add note about including an ajax
success
function within theajaxObject
definition. See issue #749.
- RepeatHeaders widget
- Now works with filtered & nested tables.
- Resizable widget
- Make it work inside of an overflow container. Fixes issue #737.
- Scroller widget
- Remove
scroller_idPrefix
in lieu of a unique namespace id.
- Remove
- StickyHeaders widget
- Now stacks when within a nested table.
- Wrapped sticky header components (
thead
&caption
) in a sticky div. - Added
stickyHeaders_xScroll
andstickyHeaders_yScroll
options. - Removed jQuery UI selection from the demo to allow the accordion to be properly themed.
- CssStickyHeaders widget
- Now stacks when within a nested table.
- Removed
cssStickyHeaders_zIndex
option as the widget no longer uses relative positioning (it wasn't necessary) - Please note that using this widget on nested tables does not work properly in ALL versions of IE (including IE11).
- UITheme
- Ignore nested tables.
- Add method to remove previous theme.
- Fix multiple header row sort icons.
Version 2.17.8 (9/15/2014)
- Core
- Fix
widthFixed
option to ignore info block tbodies. - Make
emptyTo
&stringTo
settings case insensitive. - An empty string
headerTemplate
option will now prevent adding an inner div to the header.
- Fix
- Docs
- Fix setting active accordion from hash script.
- Add
emptyTo
clarification. - Main readme: Add related projects section.
- Editable
- Autoresort true no longer breaks the table.
- Update demo to use row id instead of index.
- Update validate function to allow setting it per column.
- Add
editable_focus
,editable_blur
andeditable_selectAll
options. See issue #708. - Add
editable_wrapContent
option. - Add
editable_trimContent
option. - Validate function now includes a contenteditable element parameter.
- All text callback parameters are now trimmed.
- Trim everything & revert widget changes.
- Refocus edited element after resort only.
- Switch form focus to focusout.
- Filter
- Add
filter_defaultFilter
option.- fix issue with using class selectors.
- Make happy with spaces within the query.
- Will override exact/partial select filters. Fixes issue #721.
- Fixes issue #704.
- Add
filter_excludeFilter
option; add multiple exclusions separated by spaces, not commas. - Prevent multiple searches during initialization.
- Ensure initial filter settings get applied.
- Selects will exactly match the selected option unless "filter-match" class is set. Fixes issue #721.
- Add
- Pager
- Update cache & rows copy. Fixes issue #703.
- Use native javascript to populate & set the goto select. Fixes issue #711.
- Custom pager controls. Fix control updates for multiple tables.
- Fix pager widget to be properly applied after a page move.
- StickyHeaders: Fix issue so it works with jQuery v1.2.6 again.
- Zebra: Apply style to one row. Fixes issue #715.
- Parser
- Duration parser - added with demo.
- Select parser - Fix for IE10+ not allowing select options to be clicked.
- IgnoreArticles parser - Added
ignoreArticlesExcept
option. - url parser - ensure it is used by the filter widget.