我知道这是一个流行的问题,我已经在Stack Overflow和其他网站(包括DataTables网站)上阅读了所有类似的问题.

为了澄清,我正在使用

  • PHP Codeigniter
  • Materliazecss

I have also made sure that I received the JSON array correctly:

[{"name_en":"hello","phone":"55555555"},{"name_en":"hi","phone":"00000000"}]

My HTML table looks like this:

<table id="customer_table">
     <thead>
         <tr>
            <th>Name</th>
            <th>Phone</th>
         </tr>
     </thead>
</table>

下面是我的document.ready个函数:

  $(document).ready(function(){
            //$('#customer_table').DataTable();
            $('#customer_table').DataTable( {
                "ajax": 'json',
                "dataSrc": "",
                 "columns": [
                    { "data": "email" },
                    { "data": "name_en" }
                ]
            });
  });

The error I am getting is

未捕获的TypeError:无法读取未定义的属性"Length"

推荐答案

CAUSE

这个错误通常意味着jQuery DataTables在对Ajax请求的响应中找不到数据.

默认情况下,jQuery DataTables期望数据采用如下所示的格式之一.由于数据以非默认格式返回,因此出现错误.

Array of arrays

{ 
   "data": [
      [
         "Tiger Nixon",
         "System Architect",
         "$320,800",
         "2011/04/25",
         "Edinburgh",
         "5421"
      ]
   ]
}

Array of objects

{ 
   "data": [
      {
         "name": "Tiger Nixon",
         "position": "System Architect",
         "salary": "$320,800",
         "start_date": "2011/04/25",
         "office": "Edinburgh",
         "extn": "5421"
      }
   ]
}

SOLUTION

使用默认格式或使用ajax.dataSrc选项定义包含Ajax响应中的表数据的数据属性(默认为data).

See Data array location for more information.

LINKS

See jQuery DataTables: Common JavaScript console errors for more details.

Jquery相关问答推荐

jQuery从JSON创建嵌套列表

使用 howler.js 中的变量播放多种声音

使用带有 bootstrap 验证的 Ajax 函数时出现问题

Visual Studio - 将文本粘贴到 cshtml 中会删除文本

jQuery非只读 Select 器

如何在循环内创建动态变量名称?

jQuery增量读取AJAX流?

Jquery查找所有以字符串开头的ID?

lodash debounce 在匿名函数中不起作用

如何禁用在div内单击

jQuery UI 滑块(以编程方式设置)

jquery获取帖子操作网址

jQuery $.cookie 不是一个函数

使用jquery设置di​​v标签的值

使用 AJAX 加载 Bootstrap 弹出内容.这可能吗?

按文本 Select 链接(完全匹配)

如何在新窗口中打开链接?

如何使用 jQuery 格式化电话号码

javascript,是否有像 isArray 这样的 isObject 函数?

如何获得两个日期对象之间的小时差?