tablesort a small & simple sorting component for tables. Written in JavaScript and dependency free.

# Name Birthday Grocery item Price Version Filesize
1 Gonzo the Great 12-2-70 Radishes $0.63 31.0.1650.57 124k
2 Ernie 10/11/69 Fish $12.09 11.0.1 134.56 GB
3 Bert 10/11/1969 Broccoli $0.79 18.0.1284.49 134 B
4 Cookie Monster 1/09/1966 Oreo cookies $2.78 3.0.0 4.13 TiB
5 Kermit 12-05-1955 Granola $4.73 3.0.9 12 YB
6 Sam the Eagle 04/07/75 Corn dog $5.50 3.1.2 19.4 K
Latest release Development version
tablesort on GitHub


A small & simple sorting component for tables written in JavaScript.

npm version Build Status

Quick start

Download the ZIP of this repository or install via command line:

npm install tablesort 
# Or if you're using Yarn 
yarn add tablesort 
<script src='tablesort.min.js'></script>

<!-- Include sort types you need -->
<script src='tablesort.number.js'></script>
<script src=''></script>

  new Tablesort(document.getElementById('table-id'));

See usage and demos for more

Browser Support

Chrome logo Firefox logo Internet Explorer logo Opera logo Safari logo
8+ ✔ 3.6+ ✔ 10+ ✔ 11.50+ ✔ 5.1+ ✔


// npm install tablesort
var tablesort = require('tablesort');

tablesort(el, options);

Default CSS

Add the styling from tablesort.css file to your CSS or roll with your own.

Extending Tablesort

If you require a sort operation that does not exist in the sorts directory, you can add your own.

Tablesort.extend('name', function(item) {

  // Regular expression to test against.
  // `item` is a table value to evaluate.
  return /foo/.test(item);
}, function(a, b) {

  // Custom sort functionality goes here.
  // e.g var n = (a > b) ? -1 : 1;
  return n;

If you’ve made an extend function that others would benefit from pull requests are gladly accepted!


Tablesort relies on Grunt as its build tool. Simply run npm run build to package code from any contributions you make to src/tablesort.js before submitting pull requests.

Tests are run via:

npm install && npm test




Create an issue