jQuery DataTable报错:Cannot read properties of undefined (reading 'length')求助
解决jQuery DataTable报错:Uncaught TypeError: Cannot read properties of undefined (reading 'length')
核心问题:表格HTML结构不合法
你的Pug模板中tbody的循环缩进存在错误,导致生成的表格行与单元格结构不符合规范:
tbody each row in tableResults tr // 此处tr未包含后续的td循环 each data in row td p #{data}
这段代码会生成空的<tr>标签,所有<td>都直接挂载在<tbody>下,DataTable无法识别正确的表格数据结构,进而触发length相关的读取错误。
修复方案
修正模板缩进,保证td嵌套在tr内部
调整Pug代码的缩进层级,让each data in row归属于对应的tr:tbody each row in tableResults tr each data in row td p #{data}调整后生成的HTML中,每个
<tr>都会包含对应的<td>,表格结构符合DataTable的解析要求。确认初始化时机的正确性
- 若为服务器端直接渲染模板,当前的
$(function() { ... })(DOM加载完成后执行)逻辑没问题。 - 若为前端异步加载数据后动态生成表格,需在数据渲染完成的回调函数内再调用
$('#myTable').DataTable()。
- 若为服务器端直接渲染模板,当前的
校验数据完整性
检查tableResults是否为合法的二维数组:- 确保每个
row都是数组类型,且数组长度与thead中tableColumns的长度一致,避免出现单元格数量不匹配的情况。
- 确保每个
内容的提问来源于stack exchange,提问作者lancegoh
相关产品推荐
相关产品推荐

