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
。