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 來定位不存在的欄位已經定義了其他欄位,也可能發生此錯誤。

解決方案

要解決此問題,請確保表格標頭中的欄位數與表格內文中的欄位數相符