Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.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 Datatables:fnRowCallback内部的自定义函数_Javascript_Jquery_Datatables - Fatal编程技术网

Javascript Datatables:fnRowCallback内部的自定义函数

Javascript Datatables:fnRowCallback内部的自定义函数,javascript,jquery,datatables,Javascript,Jquery,Datatables,正在尝试在fnRowCallback内部运行函数。 jQuery报告此错误: too much recursion /js/jquery.js Line: 4 找不到此neverending循环。 警报(aData.toSource())显示我试图循环通过的数组 var clientId = 1234; var reportData = $('#report-data').dataTable({ "bProcessing": true, "bSe

正在尝试在fnRowCallback内部运行函数。 jQuery报告此错误:

too much recursion
/js/jquery.js
Line: 4
找不到此neverending循环。
警报(aData.toSource())显示我试图循环通过的数组

    var clientId = 1234;
    var reportData = $('#report-data').dataTable({
        "bProcessing": true,
        "bServerSide": true,
        "sAjaxSource": "?go=report&do=process&action=get-report",
        "fnServerData": function ( sSource, aoData, fnCallback ) {
            aoData.push({ "name": "client_id", "value": clientId });
            $.getJSON( sSource, aoData, function (json) { 
                fnCallback(json);
            });
        },
        "fnRowCallback": function (nRow, aData, iDisplayIndex, iDisplayIndexFull) {
            formatDates(nRow,aData);
        },
    });

    function formatDates(nRow,aData) {
//      alert(aData.toSource());
        for(i=0; i!=aData.length; i++) {
            if (aData[i].match(/^([0-9]{4}-[0-9]{2}-[0-9]{2})T([0-9]{2}:[0-9]{2}):[0-9]{2}\.[0-9]{3}$/gi)) {
                reportData.fnUpdate('New Date Format', nRow['_DT_RowIndex'], i);
            }
        }
    }

对于每一行,调用
fnRowCallback
,调用
fomatDates
,调用
fnUpdate
,重新绘制表格,调用
fnRowCallback

编辑:再仔细考虑一下,强制重画可能会再次导致递归问题。相反,将FNROW回调中对FNDUpdate的调用替换为:

$(nRow).find('td:eq(' + i + ')').text('New Date Format');

这将第i个TD元素的文本更新为“新日期格式”,这似乎是您想要做的。

明白了。那怎么用其他方法呢?=)隐马尔可夫模型。。。我用另一种可能更快的解决方案进行了更新,因为它不会延迟重画,直到所有行都被处理
nRow
是对TR元素的引用,
$(nRow)。find(…
将在rowGood catch中查找元素,我忘记了
nth类型
是1索引的