Hidden title numeric sorting
Sort data numerically based on an attribute on an empty element.
- Author: Allan Jardine
- Deprecated: This plug-in has been deprecated and replaced with other functionality. Please see the detailed description below for more information.
An alternative to the formatted number sorting function above (particularly
useful when considering localisation which uses dots / periods for 10^3
separation rather than decimal places). Another method of overcoming it
difficulties of sorting formatted numbers is to have the data to be sorted
upon separate from the visual data. This sorting function pair will use the
'title' attribute of en empty span element (or anything else) to sort
numerically (for example <span title="1000000"><span>1'000'000
).
Note that the HTML5 data-sort
attribute can be used to supply sorting data
to DataTables and is preferable to
using this method, which is therefore marked as deprecated.
Plug-in code
jQuery.extend( jQuery.fn.dataTableExt.oSort, {
"title-numeric-pre": function ( a ) {
var x = a.match(/title="*(-?[0-9\.]+)/)[1];
return parseFloat( x );
},
"title-numeric-asc": function ( a, b ) {
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
},
"title-numeric-desc": function ( a, b ) {
return ((a < b) ? 1 : ((a > b) ? -1 : 0));
}
} );
CDN
This plug-in is available on the DataTables CDN:
Note that if you are using multiple plug-ins, it is beneficial in terms of performance to combine the plug-ins into a single file and host it on your own server, rather than making multiple requests to the DataTables CDN.
Version control
If you have any ideas for how this plug-in can be improved, or spot anything that is in error, it is available on GitHub and pull requests are very welcome!
- This plug-in: title-numeric.js
- Full DataTables plug-ins repository: DataTables/Plugins
Example
$('#example').dataTable( {
columnDefs: [
{ type: 'title-numeric', targets: 0 }
]
} );