jQuery.fn.dataTableExt.oSort['title-numeric-asc'] = function(a,b) { var x = a.match(/title="*(-?[0-9]+)/)[1]; var y = b.match(/title="*(-?[0-9]+)/)[1]; x = parseFloat( x ); y = parseFloat( y ); return ((x < y) ? -1 : ((x > y) ? 1 : 0)); }; jQuery.fn.dataTableExt.oSort['title-numeric-desc'] = function(a,b) { var x = a.match(/title="*(-?[0-9]+)/)[1]; var y = b.match(/title="*(-?[0-9]+)/)[1]; x = parseFloat( x ); y = parseFloat( y ); return ((x < y) ? 1 : ((x > y) ? -1 : 0)); }; $(document).ready(function() { $('#pr_code_stats').dataTable({ "aoColumns": [ null, null, null, null, null, {"sType": "title-numeric"} ], "sDom": "<'row'<'span10'l><'span10'f>r>t<'row'<'span10'i><'span10'p>>", "sPaginationType": "bootstrap", "sWrapper": "dataTables_wrapper form-inline", "iDisplayLength": 25, "aLengthMenu": [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]], "fnFooterCallback": function(nRow, aaData, iStart, iEnd, aiDisplay) { var page_clicks_sum = 0; var page_accounts_sum = 0; var page_trials_sum = 0; var page_sales_sum = 0; var total_clicks_sum = 0; var total_accounts_sum = 0; var total_trials_sum = 0; var total_sales_sum = 0; /*calculate totals for all data*/ for (var i = 0; i<aaData.length ; i++) { /*Have to strip out extra characters so parsefloat and parseInt work right*/ total_clicks_sum += parseInt(aaData[i][1]*1); total_accounts_sum += parseInt(aaData[i][2]*1); total_trials_sum += parseInt(aaData[i][3]*1); total_sales_sum += parseInt(aaData[i][4]*1); } /*calculate totals for this page*/ for (var i = iStart; i<iEnd ; i++) { /*Have to strip out extra characters so parsefloat and parseInt work right*/ page_clicks_sum += parseInt(aaData[aiDisplay[i]][1]*1); page_accounts_sum += parseInt(aaData[aiDisplay[i]][2]*1); page_trials_sum += parseInt(aaData[aiDisplay[i]][3]*1); page_sales_sum += parseInt(aaData[aiDisplay[i]][4]*1); } /*modify the footer rows*/ var nCells = nRow.getElementsByTagName('th'); var secondRow = $(nRow).next()[0]; var ndCells = secondRow.getElementsByTagName('th'); nCells[1].innerHTML = addCommas(page_clicks_sum); nCells[2].innerHTML = addCommas(page_accounts_sum); nCells[3].innerHTML = addCommas(page_trials_sum); nCells[4].innerHTML = addCommas(page_sales_sum); nCells[5].innerHTML = ratio(page_sales_sum, page_clicks_sum); ndCells[1].innerHTML = addCommas(total_clicks_sum); ndCells[2].innerHTML = addCommas(total_accounts_sum); ndCells[3].innerHTML = addCommas(total_trials_sum); ndCells[4].innerHTML = addCommas(total_sales_sum); ndCells[5].innerHTML = ratio(total_sales_sum, total_clicks_sum); } }); }); This is how the <td> tag looks like: <td><span title="0.035714285"></span>1:54</td>
It's not working, it is using classic string sorting on that column. Don't know how to fix this. Please help.
Thanks.