我收到控制台错误:
"Uncaught TypeError: Cannot set property 'nTf' of undefined".
我正在使用
jQuery Datatable
。
好吧,让我向大家澄清一下,
tfoot > th
必须等于你的thead > th
我最近刚刚遇到这种问题,并试图花几分钟来解决它,所以只要确保将来有人可能会面临它
根据https://datatables.net/forums/discussion/22697/uncaught-typeerror-cannot-set-property-ntf-of-undefined,您可能在定义的表的页眉和/或页脚中有更多单元格在你的 html 中比你从服务器返回的要好。
至少这是我遇到的问题,给了我这个错误消息。
嗨,我有同样的问题,但现在我已经解决了我的问题。出现此问题的原因是 head 标签中的列数多于 body 标签。如果您遇到同样的错误,请首先检查 thead 和 tbody 或 tfoot 中有多少列。
页眉和页脚部分中
<th>
的数量应匹配
<thead>
<tr>
<th></th>
<th>Subject Areas</th>
<th></th>
<th>Option(s)</th>
<tr>
</thead>
<tbody></tbody>
<tfoot>
<tr>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
</tfoot>
在表中检查所有 colspan 属性值是否等于列数
我也遇到这个问题了。 tfoot 中的所有列都与 thead 匹配。只需清除浏览器缓存的简单步骤就为我带来了魔力。希望这对某人有帮助。
另一个可能的原因涉及引用不存在的列索引的函数。例如,我只有 8 列,但该函数引用了列索引 10,这导致了错误。
...
initComplete: function () {
this.api().columns([2, 3, 4, 5, 10]).every(function () {
...
页眉和页脚部分中
<th>
的数量应该匹配,或者您可以使用 colspan
<thead>
<tr>
<th>{{__("ID")}}</th>
<th>{{__("Ar Name")}}</th>
<th>{{__("En Name")}}</th>
<th width="70">{{__("Control")}}</th>
</tr>
</thead>
<tfoot>
<tr>
<th colspan="4"></th>
</tr>
</tfoot>
我使用的是服务器端处理方法。 我能够通过确保数据表选项中的 columns 属性与 table thead 和 table tfoot 列相同来解决我的问题。
这个问题我遇到过两次, 第一次通过添加缺少的标签来解决(两侧必须相等) 第二次通过刷新浏览器缓存解决了。
如果您有“列”选项,请检查数量
columns: [
{ className: "select-filter" },
null,
null,
null,
null,
null,
null,
null,
null
]