Есть табличка со сложными данными, для правильной сортировки одного из столбцов пишу свою функцию. Содержимое нужного столбца - html с цифрами либо знаком бесконечности, например 15,4 , ∞
Написал плагин для DataTable:
$.extend( $.fn.dataTableExt.oSort, {
"numinf-pre": function ( item ) {
var inner = $(item).html();
if (inner === '∞') {
inner = Infinity;
}
console.log(inner + ' ' + item);
return inner;
},
"numinf-asc": function ( a, b ) {
var res = (a < b) ? -1 : ((a > b) ? 1 : 0);
console.log(a + ' ' + b + ' ' + res);
return res;
},
"numinf-desc": function ( a, b ) {
var res = (a < b) ? 1 : ((a > b) ? -1 : 0);
console.log(a + ' ' + b + ' ' + res);
return res;
}
} );
Вызов стандартный:
statTable = $('#statstable').dataTable({
"columnDefs": [
{ "type": "numinf", "targets": 8 }
]
});
Однако сортируется всё равно как строка(
Причём, по консоли видно, что отрабатывает только numinf-pre, asc и desc не отрабатывают