2. 警告:非表格节点初始化
DataTables 将仅在 HTML table
元素上初始化。在任何其他元素类型上运行 DataTables 将导致出现错误。
含义
如果您尝试在任何其他类型的元素上初始化 DataTables,而不仅仅是静默失败,您将收到 DataTables 的一条错误,指出
DataTables 警告:非表格节点初始化(
{tag}
)。
其中 {tag}
被替换为尝试用来初始化表格的元素的节点名称(即 div
、h3
等)。
诊断
当这种情况发生时,此错误通常是由于用于初始化 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 的节点的代码,并优化所使用的选择器以仅选择表格节点,或更正现有选择器中的任何错误。