Datatables只会在
tableTag
元素上初始化。在任何其他元素上使用Datatables都会导致此错误。
含义(Meaning)
如果你尝试在任何其他类型的元素上初始化Datatables,Datatables会给出警告提示:
DataTables warning: Non-table node initialisation ({tag}).
其中{tag}
替换为尝试用来初始化表格的元素的节点名称(比如
divTag
或者
h3Tag
)
诊断(Diagnosis)
发生这种错误时,通常是由于用于初始化Datatables的jQuery选择器中的选择器错误所致。这可能仅仅是因为选择器指向错误的元素类型或者选择器过于宽泛。
作为这两个情况的示例,有如下HTML代码:
<div id="demo" class="display">
<table class="display">...</table>
</div>
然后以下的操作将会导致此错误的发生:
// 选择错误的元素
// 会导致错误,因为#demo 是一个div元素
$('#demo').dataTable()
// 选择器太宽泛
// 会导致错误,因为.display同时应用于div和table元素上
$('.display').dataTable();
解决(Resolution)
如果你遇到此错误,检查你操作的元素是否为表格元素,或者检查选择器的选择范围。