我知道这是一个很普遍的问题,我在Stack Overflow和其他网站(包括datatables网站)上阅读了所有类似的问题。
为了澄清,我正在使用
我还确保我正确接收了JSON数组:
[{"name_en":"hello","phone":"55555555"},{"name_en":"hi","phone":"00000000"}]
我的HTML表格如下所示:
<table id="customer_table"> <thead> <tr> <th>Name</th> <th>Phone</th> </tr> </thead> </table>
这是我的document.ready功能:
document.ready
$(document).ready(function(){ //$('#customer_table').DataTable(); $('#customer_table').DataTable( { "ajax": 'json', "dataSrc": "", "columns": [ { "data": "email" }, { "data": "name_en" } ] }); });
我得到的错误是
未捕获的TypeError:无法读取未定义的属性’length’
此错误TypeError: Cannot read property 'length' of undefined通常意味着jQuery DataTables无法在对Ajax请求的响应中找到数据。
TypeError: Cannot read property 'length' of undefined
默认情况下,jQuery DataTables期望数据采用以下所示格式之一。发生错误是因为以默认格式以外的其他格式返回了数据。
数组数组
{ "data": [ [ "Tiger Nixon", "System Architect", "$320,800", "2011/04/25", "Edinburgh", "5421" ] ] }
对象数组
{ "data": [ { "name": "Tiger Nixon", "position": "System Architect", "salary": "$320,800", "start_date": "2011/04/25", "office": "Edinburgh", "extn": "5421" } ] }
使用默认格式或使用ajax.dataSrc选项来定义包含Ajax响应中的表数据的数据属性(data默认情况下)。
ajax.dataSrc
data
有关更多信息,请参见数据数组位置。
有关更多详细信息,请参见jQuery DataTables:常见的JavaScript控制台错误。