2013-02-17 19:53:33 +00:00
<!DOCTYPE html>
2012-03-07 18:06:10 +00:00
< html >
< head >
2016-01-10 22:24:57 +00:00
< meta charset = "utf-8" >
< title > jQuery tablesorter 2.0 - Writing custom parsers, advanced use< / title >
2012-03-07 18:06:10 +00:00
<!-- jQuery -->
2014-05-21 22:09:23 +00:00
< script src = "js/jquery-latest.min.js" > < / script >
2012-03-07 18:06:10 +00:00
<!-- Demo stuff -->
< link rel = "stylesheet" href = "css/jq.css" >
2013-01-26 15:21:13 +00:00
< link href = "css/prettify.css" rel = "stylesheet" >
< script src = "js/prettify.js" > < / script >
2012-03-07 18:06:10 +00:00
< script src = "js/docs.js" > < / script >
<!-- Tablesorter: required -->
2012-09-27 19:57:19 +00:00
< link rel = "stylesheet" href = "../css/theme.blue.css" >
2012-03-07 18:06:10 +00:00
< script src = "../js/jquery.tablesorter.js" > < / script >
< script id = "js" > / / a d d p a r s e r t h r o u g h t h e t a b l e s o r t e r a d d P a r s e r m e t h o d
2018-03-17 20:30:25 +00:00
$(function() {
2012-03-07 18:06:10 +00:00
$.tablesorter.addParser({
// set a unique id
id: 'data',
2014-09-17 04:10:45 +00:00
is: function(s, table, cell, $cell) {
2012-03-07 18:06:10 +00:00
// return false so this parser is not auto detected
return false;
},
format: function(s, table, cell, cellIndex) {
2012-04-12 22:05:28 +00:00
var $cell = $(cell);
2012-03-07 18:06:10 +00:00
// I could have used $(cell).data(), then we get back an object which contains both
// data-lastname & data-date; but I wanted to make this demo a bit more straight-forward
// and easier to understand.
// first column (zero-based index) has lastname data attribute
if (cellIndex === 0) {
// returns lastname data-attribute, or cell text (s) if it doesn't exist
return $cell.attr('data-lastname') || s;
// third column has date data attribute
} else if (cellIndex === 2) {
// return "mm-dd" that way we don't need to use "new Date()" to process it
return $cell.attr('data-date') || s;
}
// return cell text, just in case
return s;
},
2014-02-19 10:28:45 +00:00
// flag for filter widget (true = ALWAYS search parsed values; false = search cell text)
parsed: false,
2012-03-07 18:06:10 +00:00
// set type, either numeric or text
type: 'text'
});
$('table').tablesorter({
2012-09-27 19:57:19 +00:00
theme: 'blue',
headers: {
2012-03-07 18:06:10 +00:00
0 : { sorter: 'data' },
2 : { sorter: 'data' }
},
widgets: ['zebra']
});
});
< / script >
< / head >
< body >
< div id = "banner" >
< h1 > table< em > sorter< / em > < / h1 >
< h2 > Writing custom parsers, advanced use< / h2 >
< h3 > Flexible client-side table sorting< / h3 >
< a href = "index.html" > Back to documentation< / a >
< / div >
< div id = "main" >
2012-09-27 19:57:19 +00:00
< p class = "tip" >
< em > NOTE!< / em >
2016-01-10 22:24:57 +00:00
< / p >
< ul >
< li > In < span class = "version" > v2.15.0< / span > , the < code > parsed< / code > parameter
< ul >
< li > This parameter is a flag used by the filter widget.< / li >
< li > When < code > true< / code > , the filter widget will only search through parsed data for matches.< / li >
< li > If < code > false< / code > (default value), the filter widget will search through the cell text for matches.< / li >
< / ul >
< / li >
< li > This method of writing custom parsers will NOT work with the original tablesorter 2.0.5b plugin because the format function does not consistently provide the < code > cell< / code > and < code > cellIndex< / code > parameters.< / li >
< / ul >
2012-09-27 19:57:19 +00:00
2012-03-07 18:06:10 +00:00
< h1 > Demo< / h1 >
< div id = "demo" > < table >
< thead >
< tr >
< th > Name (Last)< / th >
< th > Originally from...< / th >
< th > Birthday< / th >
< / tr >
< / thead >
< tbody >
< tr >
< td data-lastname = "Allen" > Joe Allen< / td >
< td > South Carolina< / td >
< td data-date = "01-15" > Jan 15< / td >
< / tr >
< tr >
< td data-lastname = "Torres" > Lisa Torres< / td >
< td > Maryland< / td >
< td data-date = "03-02" > March 2nd< / td > <!-- leading zeros needed to sort properly! -->
< / tr >
< tr >
< td data-lastname = "Franklin" > Peter Louis Franklin< / td >
< td > Coventry< / td >
< td data-date = "12-26" > Boxing Day (Dec 26th)< / td >
< / tr >
< tr >
< td data-lastname = "Jones" > Maria Consuela de Los Angeles Ortiz Del Toro-Jones< / td >
< td > Texas< / td >
< td data-date = "05-10" > 10 Mayo< / td >
< / tr >
< tr >
< td data-lastname = "Bigglesworth" > Mike "the Smasher" Bigglesworth< / td >
< td > Rhode Island< / td >
< td data-date = "06-22" > 22nd of June< / td >
< / tr >
< tr >
< td data-lastname = "Smith" > Fredrick Smith< / td >
< td > Ohio< / td >
< td data-date = "03-10" > 10th Mar< / td >
< / tr >
< / tbody >
< / table > < / div >
< h1 > Javascript< / h1 >
< div id = "javascript" >
2013-01-26 15:21:13 +00:00
< pre class = "prettyprint lang-javascript" > < / pre >
2012-03-07 18:06:10 +00:00
< / div >
< h1 > HTML< / h1 >
< div id = "html" >
2013-01-26 15:21:13 +00:00
< pre class = "prettyprint lang-html" > < / pre >
2012-03-07 18:06:10 +00:00
< / div >
< div class = "next-up" >
< hr / >
Next up: < a href = "example-option-text-extraction.html" > Dealing with markup inside cells (textExtraction function) › › < / a >
< / div >
< / div >
< / body >
< / html >