Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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
Javascript 如何解决JS表中日期排序的mData错误?_Javascript_Jquery_Html_Sorting - Fatal编程技术网

Javascript 如何解决JS表中日期排序的mData错误?

Javascript 如何解决JS表中日期排序的mData错误?,javascript,jquery,html,sorting,Javascript,Jquery,Html,Sorting,我想使用表中的函数对日期进行排序,但出现此错误 Uncaught TypeError: Cannot read property 'mData' of undefined 这是我的一张表格数据。我对排序日期有问题,所以我创建了一个排序函数 这是我的JS和datatable,我特意使用datatable来显示它们的功能,如搜索框、导出、分页 JS 我写的示例链接 原因是缺少列。您需要写入所有列,并在函数中过滤您的排序。在示例中,我导入了momente.js对日期进行排序 $('table'

我想使用表中的函数对日期进行排序,但出现此错误

Uncaught TypeError: Cannot read property 'mData' of undefined
这是我的一张表格数据。我对排序日期有问题,所以我创建了一个排序函数

这是我的JS和datatable,我特意使用datatable来显示它们的功能,如搜索框、导出、分页

JS

我写的示例链接

原因是缺少列。您需要写入所有列,并在函数中过滤您的排序。在示例中,我导入了momente.js对日期进行排序

  $('table').DataTable({
        columns:[
            {Data: "task_name"},
            {Data: "task_owner"},
            {Data: "task_planned_start_date", render: handlerRenderDate},
            {Data: "task_planned_end_date", render: handlerRenderDate},
            {Data: "task_start_date", render: handlerRenderDate},
            {Data: "task_end_date", render: handlerRenderDate},
        ]
    });


  function handlerRenderDate(data, type){
              return type === 'sort' ? data : moment(data).format('DD.MM.YYYY');

    }
我写的示例链接

原因是缺少列。您需要写入所有列,并在函数中过滤您的排序。在示例中,我导入了momente.js对日期进行排序

  $('table').DataTable({
        columns:[
            {Data: "task_name"},
            {Data: "task_owner"},
            {Data: "task_planned_start_date", render: handlerRenderDate},
            {Data: "task_planned_end_date", render: handlerRenderDate},
            {Data: "task_start_date", render: handlerRenderDate},
            {Data: "task_end_date", render: handlerRenderDate},
        ]
    });


  function handlerRenderDate(data, type){
              return type === 'sort' ? data : moment(data).format('DD.MM.YYYY');

    }

接下来,我将平均插入所有列。由此错误出现<代码>数据表警告:表id=DataTables\u table\u 11-为第0行第0列请求的未知参数“0”@masteruse I编辑并放置链接工作。我建议你使用table tbody,thead tug to html,只将数据附加到tbody,然后初始化tablehow,如果我没有使用moment.js插件?还有其他解决办法吗?我从DB收到日期,我使用从yyyy-mm-dd到dd-mm-yyyy的函数进行按摩。是的,您可以为td设置数据顺序属性,您可以将字符串解析为数字并写入,这样您就不需要使用呈现方法。也许您可以根据此语句编辑您的答案?:-)接下来,我将平均插入所有列。由此错误出现<代码>数据表警告:表id=DataTables\u table\u 11-为第0行第0列请求的未知参数“0”@masteruse I编辑并放置链接工作。我建议你使用table tbody,thead tug to html,只将数据附加到tbody,然后初始化tablehow,如果我没有使用moment.js插件?还有其他解决办法吗?我从DB收到日期,我使用从yyyy-mm-dd到dd-mm-yyyy的函数进行按摩。是的,您可以为td设置数据顺序属性,您可以将字符串解析为数字并写入,这样您就不需要使用呈现方法。也许您可以根据此语句编辑您的答案?:-)
  $('table').DataTable({
        columns:[
            {Data: "task_name"},
            {Data: "task_owner"},
            {Data: "task_planned_start_date", render: handlerRenderDate},
            {Data: "task_planned_end_date", render: handlerRenderDate},
            {Data: "task_start_date", render: handlerRenderDate},
            {Data: "task_end_date", render: handlerRenderDate},
        ]
    });


  function handlerRenderDate(data, type){
              return type === 'sort' ? data : moment(data).format('DD.MM.YYYY');

    }