18. 列数不正确
如果加载一个 table
,而其标头定义的列数与正文中使用的列数不匹配,则当加载表格时,
将会出现错误
不正确的列数
将出现。
含义
DataTables 要求在表头中定义的列数与表正文中使用的列数相匹配。如果它们不匹配,DataTables 不仅会抛出错误,而且 HTML 文档也无效。
考虑以下情况
<table>
<thead>
<tr>
<th>...</th>
<th>...</th>
<th>...</th>
</tr>
</thead>
<tbody>
<tr>
<td>...</td>
<td>...</td>
</tr>
...
</tbody>
</table>
在这种情况下,表头定义了三列,但表正文中的第一行只定义了两列。在这样的表上初始化 DataTables 时,将触发此错误。
反之亦然
<table>
<thead>
<tr>
<th>...</th>
<th>...</th>
</tr>
</thead>
<tbody>
<tr>
<td>...</td>
<td>...</td>
<td>...</td>
</tr>
...
</tbody>
</table>
在这种情况下,正文行具有比表头更多的列,这也将触发此错误。
这两种情况是最简单的类型,但当使用复杂表头(即单元格上有 colspan
和 rowspan
属性)时,也可能发生错误。在这种情况下,也适用相同的规则 - 表头中定义的列数必须与表正文行中使用的列数相匹配。
此外,DataTables 不支持表正文中单元格上的 colspan
或 rowspan
属性。
如果你正在使用 columnDefs.targets
来针对不存在的列并且已经定义了其他列,也会发生此错误。
解决方法
要解决此问题,请确保表头中的列数与表正文中的列数匹配
- 验证你的 HTML
- 确保在表正文行中不使用
colspan
和rowspan
- 使用
columnDefs.targets
,仅适用于已经定义的列。