我正在尝试让 jQuery dataTables 按自定义值对我的数字列进行排序。我已经阅读了有关数字排序的所有主题,但还没有找到解决我的问题的有效解决方案。我将我的数字存储在一个名为的 jQuery 数据属性中sort-count
这是我的数据表初始化:
$('.wp-list-table').dataTable({
"aoColumns": [
null,
null,
null,
{ "sType": "numeric", "sSortDataType": "numeric-data-attribut" },
{ "sType": "numeric", "sSortDataType": "numeric-data-attribut" },
{ "bSortable": false, "bSearchable": false },
],
"bJQueryUI":true,
"bPaginate":true,
"sPaginationType":"full_numbers"
});
这是我的自定义 afnSortData 函数,用于在排序之前捕获值:
jQuery.fn.dataTableExt.afnSortData['numeric-data-attribut'] = function ( oSettings, iColumn )
{
var aData = [];
jQuery( 'td:eq('+iColumn+')', oSettings.oApi._fnGetTrNodes(oSettings) ).each( function () {
aData.push( parseInt( jQuery(this).attr('data-sort-count'), 10 ) );
} );
console.log(aData);
return aData;
};
console.log(aData)
在列上多次单击以对其进行排序时,将显示以下输出。如您所见,它获取正确的值,它们都是数字,但它完全随机地对它们进行排序。
我已经尝试了很多小时,但无法让它工作。