当前位置: 首页 > 面试题库 >

数据表:无法读取未定义的属性“长度”

符国安
2023-03-14
问题内容

我知道这是一个很普遍的问题,我在Stack Overflow和其他网站(包括datatables网站)上阅读了所有类似的问题。

为了澄清,我正在使用

  • PHP Codeigniter
  • 物质学

我还确保我正确接收了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(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请求的响应中找到数据。

默认情况下,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默认情况下)。

有关更多信息,请参见数据数组位置。

链接

有关更多详细信息,请参见jQuery
DataTables:常见的JavaScript控制台错误



 类似资料:
  • 问题内容: Angular.js v1.0.6 进行$ http.post并收到非200的请求时(本例为401) Angular引发以下错误: 而且永远不要调用回调或errback使得无法处理响应。 难道我做错了什么?成功回叫将在提供合法凭据时按预期方式被调用。 200回应: 401回应: 此外,如果我采用普通的Promise语法来支持.success()快捷方式,则会得到一些有趣的行为: 问题答

  • 为什么我得到这个错误不能读取未定义的触摸属性? 为什么它不能读取,但它可以读取 当我们使用

  • 问题内容: 我正在制作非常简单的react应用。但是,当我尝试通过onChange事件调用父(实际上是祖父母)组件的方法时,我一直在获取。 这是触发事件的组件/表单(因此,在绑定的父组件上调用方法…是的,因为我通过道具将其从父组件传递下来,所以在方法上使用了.bound(this)。) 这是我如何通过大多数父(祖父母)组件中的props传递该方法的方法。 这是我作为父项(方法所有者和方法调用程序之

  • 我正在测试发送电子邮件与流星js和nodemailer插件: 流星添加捷运:流星NodeEmailer 当页面加载时,我在导航器的控制台上看到错误:无法读取未定义的属性“创建运输”。 那么问题是什么呢? 代码如下: /////////////////////////////////////////// ///////////////

  • 我知道这方面还有很多类似的问题,但没有一个答案是有效的。在我的例子中,我有下面的代码,我正在尝试按分数降序排列记录数组。 最后一个函数是什么给我的问题.如果用户运行以下: var web=[{url:“www.southanpton.ac.uk”,内容:“南安普敦大学提供学位课程和世界一流的研究测试。”,{url:“www.xyz.ac.uk”,内容:“另一种大学考试”},{url:“www”,内

  • 我一直试图让firebase与react一起工作,但出现了此错误 未经处理的拒绝(TypeError):无法读取未定义的fetch D:/Peti/Programming/node/coursewebpage/src/components/coursePage.js:12 9 | const db=firebase.firestore()10 | const myAuthLevel=(fireba