jQuery dataTables-排序货币格式不起作用
我正在使用Datatables对我的表进行排序。 我的某些列包含货币数据。例如:jQuery dataTables-排序货币格式不起作用,jquery,jquery-datatables,Jquery,Jquery Datatables,我正在使用Datatables对我的表进行排序。 我的某些列包含货币数据。例如: 1 $ 12 $ 12 345 $ 2 123 $ 由于某些值的空间,数据项考虑包含字符串的列,而不是数字,因此排序不正确。 见普朗克: 有没有办法让它对这些数据进行正确排序?是的,如果可能的话,不必为每个列定义它,我有20个表,有很多货币列,我不想为每个表定义它,谢谢 非常感谢您需要自己创建一个合适的插件。默认排序算法无法处理格式错误或无典型内容。但这很容易。以下插件可正确排序您的特殊货币: jQuery.ex
1 $
12 $
12 345 $
2 123 $
由于某些值的空间,数据项考虑包含字符串的列,而不是数字,因此排序不正确。 见普朗克:
有没有办法让它对这些数据进行正确排序?是的,如果可能的话,不必为每个列定义它,我有20个表,有很多货币列,我不想为每个表定义它,谢谢非常感谢您需要自己创建一个合适的插件。默认排序算法无法处理格式错误或无典型内容。但这很容易。以下插件可正确排序您的特殊货币:
jQuery.extend( jQuery.fn.dataTableExt.oSort, {
"my-currency-pre": function(a) {
return parseFloat(a.replace(/ /gi, ''));
},
"my-currency-asc": function(a,b) {
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
},
"my-currency-desc": function(a,b) {
return ((a < b) ? 1 : ((a > b) ? -1 : 0));
}
});
演示->(plnkr中的表格)
它的工作原理是在比较值之前删除空格并忽略$符号。至于“我不想为每个表定义它,谢谢”,那么-恐怕你必须-使用特殊度量对特殊数据进行排序有时需要特殊编码:)谢谢,它适用于你的示例,但当我在自己的表上尝试它时,它不起作用:(我遗漏了一些东西?(请参阅“montant”列)thankshey@user-fiddle中的链接与您在plnkr中的链接相同。您能用您未成功使用的行/表编辑fiddle吗?记得在初始化数据表之前声明插件!对不起,我只是没有提供正确的链接,我会马上给您正确的链接,谢谢lot@user,它仍然是e您粘贴的同一链接:)您可以在fiddle中更改HTML,然后单击“更新”,然后将地址链接发布到此处的注释中。这是正确的链接我在您的fiddle中有多个列,即使我添加了列,它仍然有效,但在我的示例中,它只是不起作用:/
var table = $('#example').dataTable({
"aoColumnDefs": [
{"sType": "my-currency", "aTargets": [0]}
]
});