2. 警告:非表格节点初始化

DataTables 将仅在 HTML table 元素上初始化。在任何其他元素类型上运行 DataTables 将导致出现错误。

含义

如果您尝试在任何其他类型的元素上初始化 DataTables,而不仅仅是静默失败,您将收到 DataTables 的一条错误,指出

DataTables 警告:非表格节点初始化({tag})。

其中 {tag} 被替换为尝试用来初始化表格的元素的节点名称(即 divh3 等)。

诊断

当这种情况发生时,此错误通常是由于用于初始化 DataTable 的 jQuery 选择器中的选择器错误所致。这可能是因为选择器指向错误的元素类型或选择器过于宽泛。

以这两个案例为例,如果我们考虑 HTML

<div id="demo" class="display">
    <table class="display">...</table>
</div>

那么以下选择器将导致错误

// Select wrong element
// Error as #demo is the `div` element
$('#demo').dataTable()

// Selector too broad.
// Error as `.display` is applied to both the div and the table
$('.display').dataTable(); 

解决方案

如果您遇到此错误,请检查您使用 $().dataTables() 方法选择要转换为 DataTables 的节点的代码,并优化所使用的选择器以仅选择表格节点,或更正现有选择器中的任何错误。