【发布时间】:2014-11-14 07:27:14
【问题描述】:
我正在尝试创建一个插件来更改列的排序行为。列中的数据是<ul> 元素。在列表的每个<li> 元素中,都有一些文本和一个十进制数。我想根据单元格列表中的最大十进制数对表格进行排序。这是一个显示插件的 jsfiddle,如您所见,当您对第二列进行排序时,它无法正常工作:
http://jsfiddle.net/flyingL123/1whzq1w2/3/
如果有效,降序应该是 Sam (97.50)、Joe (80.50)、Mike (17.50),升序当然应该是相反的。根据我的调试,插件为每个单元格返回正确的数值。你知道为什么表格不会被相应地排序吗?
这是插件的代码:
$.fn.dataTable.ext.order['number-list'] = function ( settings, col )
{
return this.api().column( col, {order:'index'} ).nodes().map( function ( td, i ) {
//get all numbers from the cell into an array and parseFloat each one
var nums = $(td).html().match(/(\d+.\d+)/);
if(nums){
nums = nums.map(function(val){return parseFloat(val, 10);});
return Math.max.apply(null, nums);
}
else{
return 0;
}
} );
}
【问题讨论】:
标签: jquery datatables