2

查看网页时,我的控制台出现两个错误。正在使用数据表,我很确定(如错误所示)该问题与数据表有关。这里的问题是我没有编写这段代码,我现在只是在尝试修复代码中的问题。奇怪的是,这部分代码以前应该可以工作,因为我可以明显看到它在实时版本上工作。我认为错误是正确的吗?如果是这样,当代码不是我制作的并且代码和数据量很大时,调试这个的最佳方法是什么?

数据表警告:意外数量的 TD 元素。预计2040,得到1981。DataTables不支持表体中的rowspan/colspan,每行/列组合必须有一个单元格。jquery.dataTables.js:5840

未捕获的类型错误:无法读取未定义的属性“parentNode”。jquery.dataTables.js:2843

4

6 回答 6

6

您是否有可以发布的 URL 以便我们查看?

Cannot read propertyparentNodeof undefined是一个 javascript 错误,因为您试图获取parentNode不存在的东西。

另一个错误似乎很明显?TR 中 TD 元素的数量与表格的其余部分不一致。查看 HTML 并检查 THEAD、TFOOT 和 TBODY 中的 TD 和 TH 元素的数量是否都相同。“DataTables 不支持表体中的行跨度/列跨度”

请张贴表格的 URL 或 HTML/JS 片段,最好在http://www.jsfiddle.net上

于 2013-06-03T18:13:07.020 回答
2

与此特定案例无关,但可能对其他搜索此问题的人有用。

我有同样的错误,它原来是由指定一个不存在的排序列引起的。我指定了第 11 列,但该表只有 10 列。

于 2020-04-29T10:01:51.327 回答
1

我有同样的错误,但不同的解决方案解决了它。
我已经destroy : true在初始化数据表时设置了属性。这有助于重新初始化表。
问题:在数据表中,您必须在初始化
时提供一个属性。'columns': columnArray,它看起来像:

$('#example').dataTable( {
  "ajaxSource": "sources/objects.txt",
  "columns": [
    { "data": "engine" },
    { "data": "browser" },
    { "data": "platform" },
    { "data": "version" },
    { "data": "grade" }
  ],
  destroy: true
} );

columnArray必须基于 ajax 数据进行填充。我为每个 ajax 调用填充了这个,因此用相同列的多个条目来膨胀数组。我通过将数组重新初始化为[].

于 2018-03-27T09:10:43.007 回答
1

在不检查它是否是数据表的情况下销毁表对我来说是个问题,所以它通过添加以下检查得到解决

var table = $('#tableName')
    if (!$.fn.DataTable.isDataTable('#tableName')) {
       return;
    }
    else {
        var table = $('#tableName').DataTable();
        table.destroy();
    }
于 2021-02-26T18:56:12.500 回答
0

我遇到了这个问题,我通过在任何刷新或重新填充之前清空表来解决它:

$('#table').empty();

$('#table').dataTable(...);
于 2016-11-30T07:30:41.093 回答
0

我遇到了这个问题,我通过添加 sDom 解决了这个问题:

sDom: '<"top"><"clear">rt<"bottom"><"clear">'   

之前是:

sDom: ''    
于 2017-07-22T15:15:46.823 回答