数据表无法读取未定义的属性“fnGetData”

Raj*_*aja 3 javascript jquery datatables

我在我的项目中使用 jQuery Datatables,现在一切正常。但我在浏览器控制台中收到以下警告错误,并且我没有找到任何关于为什么会出现这种情况的线索。但它并没有停止任何功能。

 Uncaught TypeError: Cannot read property 'fnGetData' of undefined
Run Code Online (Sandbox Code Playgroud)

这是抽牌后出现的错误。

以下是我用于数据表的参数。这样您就可以对这个警告错误有所了解。

var initParams = {
        "bDestroy": true,
        "autoWidth": false,
        "bSortClasses": true,
        "iDisplayLength": 15,
        "aLengthMenu": [[10, 15, 30, 50, 100, -1], [10, 15, 30, 50, 100, "All"]],
        "sAjaxSource": defaultReq,
        "fnServerData": function ( sSource, aoData, fnCallback, oSettings ) {
            oSettings.jqXHR = $.ajax( {
               "dataType": 'json',
               "type": "GET",
               "url": sSource,
               "data": aoData,
               "success": fnCallback,
               "error": function (e) {
                   console.log(e.message);
               }
           });
        },
        "aoColumns": cols,
        "aoColumnDefs": colDef
    };
Run Code Online (Sandbox Code Playgroud)

我正在触发 ajax (sAjaxSource) 请求来获取表数据。

Gyr*_*com 5

您的初始化代码是正确的。我怀疑您正在使用较新的 DataTables 1.10.x 库(通过autoWidth选项的存在)。

Cannot read property 'fnGetData' of undefined当您尝试在较新的 1.10.x 版本的 DataTables 的 API 实例上调用旧版本 (1.9.x) 方法时,可能会发生错误fnGetData(),例如:

var data = $('#example').DataTables().fnGetData();
Run Code Online (Sandbox Code Playgroud)

fnGetData()在 1.9.x 和 1.10.x 版本中调用的正确方法是

var data = $('#example').dataTable().fnGetData();
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅DataTables 1.9 至 1.10 迁移参考。