$(document).ready(function(){ $.tablesorter.addParser({ // use a unique id id: 'saas', is: function(s, table, cell) { // s is the text from the cell // table is the current table (as a DOM element; not jQuery object) // cell is the current table cell (DOM element) // return false if you don't want this parser to be auto detected return false; }, format: function(s, table, cell, cellIndex) { // s is the text from the cell // table is the current table (as a DOM element; not jQuery object) // cell is the current table cell (DOM element) // cellIndex is the current cell's column index // format your data for normalization // (i.e. do something to get and/or modify your data, then return it) return s.replace('.', '').replace(',', '.').replace('%', ''); }, // flag for filter widget (true = ALWAYS search parsed values; false = search cell text) parsed: false, // set the type to either numeric or text (text uses a natural sort function // so it will work for everything, but numeric is faster for numbers type: 'numeric' }); // call the tablesorter plugin $("table").tablesorter({ theme : 'blue2', // initialize zebra striping of the table widgets: ['zebra','staticRow'], // change the default striping class names // updated in v2.1 to use widgetOptions.zebra = ["even", "odd"] // widgetZebra: { css: [ "normal-row", "alt-row" ] } still works widgetOptions : { zebra : [ "normal-row", "alt-row" ] } }); });