Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery dataTables-排序货币格式不起作用_Jquery_Jquery Datatables - Fatal编程技术网

jQuery dataTables-排序货币格式不起作用

jQuery dataTables-排序货币格式不起作用,jquery,jquery-datatables,Jquery,Jquery Datatables,我正在使用Datatables对我的表进行排序。 我的某些列包含货币数据。例如: 1 $ 12 $ 12 345 $ 2 123 $ 由于某些值的空间,数据项考虑包含字符串的列,而不是数字,因此排序不正确。 见普朗克: 有没有办法让它对这些数据进行正确排序?是的,如果可能的话,不必为每个列定义它,我有20个表,有很多货币列,我不想为每个表定义它,谢谢 非常感谢您需要自己创建一个合适的插件。默认排序算法无法处理格式错误或无典型内容。但这很容易。以下插件可正确排序您的特殊货币: jQuery.ex

我正在使用Datatables对我的表进行排序。 我的某些列包含货币数据。例如:

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]}
   ]
});