Jquery 使用特殊格式对数据表中的数字进行排序
因此,在使用数据表时,我想对货币进行格式化,使其显示10亿美元、100万美元和1000万美元,但问题是,在对其进行排序时,它与1亿美元相同,因此如果我有200万美元和1亿美元,200万美元将超过10亿美元,有没有可能使用这样的格式进行排序?您可以更改排序插件以生成以下代码:Jquery 使用特殊格式对数据表中的数字进行排序,jquery,datatables,Jquery,Datatables,因此,在使用数据表时,我想对货币进行格式化,使其显示10亿美元、100万美元和1000万美元,但问题是,在对其进行排序时,它与1亿美元相同,因此如果我有200万美元和1亿美元,200万美元将超过10亿美元,有没有可能使用这样的格式进行排序?您可以更改排序插件以生成以下代码: jQuery.fn.dataTable.ext.type.order['currency-abbr-pre'] = function ( data ) { var matches = data.match( /^\$
jQuery.fn.dataTable.ext.type.order['currency-abbr-pre'] = function ( data ) {
var matches = data.match( /^\$(\d+(?:\.\d+)?)\s*([a-z]+)/i );
var multipliers = {
k: 1000,
m: 1000000,
b: 1000000000
};
if (matches) {
var multiplier = multipliers[matches[2].toLowerCase()];
return parseFloat( matches[1] ) * multiplier;
} else {
return -1;
};
};
$(document).ready(function (){
var table = $('#example').DataTable({
columnDefs: [
{ type: 'currency-abbr', targets: 1 }
]
});
});
有关代码和演示,请参见。1B
<td data-sort="1000">1B</td>
<td data-sort="10">10M</td>
10米
我找到了一个更简单的解决方案,我添加了标记数据排序,以便datatables将按该值排序,但感谢您的帮助answer@Janva是的,那也行。我不知道你也有原始价值观。你的意图是好的,但我建议改进答案。比如解释你发布的代码为什么有效。例如,添加一个简单的文本来解释您的推理:“在数据排序
属性中为排序使用一个单位,并按照用户的格式显示”