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>

在这种情况下,正文行具有比表头更多的列,这也将触发此错误。

这两种情况是最简单的类型,但当使用复杂表头(即单元格上有 colspanrowspan 属性)时,也可能发生错误。在这种情况下,也适用相同的规则 - 表头中定义的列数必须与表正文行中使用的列数相匹配。

此外,DataTables 不支持表正文中单元格上的 colspanrowspan 属性。

如果你正在使用 columnDefs.targets 来针对不存在的列并且已经定义了其他列,也会发生此错误。

解决方法

要解决此问题,请确保表头中的列数与表正文中的列数匹配