我在我的项目中使用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)请求以获取表数据。
任何帮助,将不胜感激 :)
您的初始化代码是正确的。我怀疑你正在使用更新的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。
使用rows()。nodes()而不是fnGetData()。
像这样,
var data = $('#example').DataTables().rows().nodes();