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

问题描述 投票:3回答:2

我在我的项目中使用jQuery Datatables,现在一切都很好用。但我在浏览器控制台中遇到警告错误,我不知道这个错误为什么会这样。但它并没有阻止任何功能。

 Uncaught TypeError: Cannot read property 'fnGetData' of undefined

这是表格绘制后的错误。

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

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

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

任何帮助,将不胜感激 :)

javascript jquery datatables jquery-datatables
2个回答
3
投票

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

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

var data = $('#example').DataTables().fnGetData();

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

var data = $('#example').dataTable().fnGetData();

有关更多信息,请参阅DataTables 1.9 to 1.10 migration reference


0
投票

使用rows()。nodes()而不是fnGetData()。

像这样,

var data = $('#example').DataTables().rows().nodes();
© www.soinside.com 2019 - 2024. All rights reserved.