数据表:未捕获的TypeError:无法读取未定义的属性“parentNode”

时间:2013-06-03 18:07:13

标签: php javascript jquery console datatables

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

  

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

     

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

6 个答案:

答案 0 :(得分:3)

您是否有可以发布的网址,以便我们查看?

Cannot read property parentNode of undefined是一个javascript错误,因为您尝试获取不存在的parentNode内容。

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

请发布表格的网址或HTML / JS代码段,最好是http://www.jsfiddle.net

答案 1 :(得分:1)

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

我遇到了相同的错误,结果是由于指定了不存在的排序列而导致。我指定了第11列,但该表只有10列。

答案 2 :(得分:1)

在不检查它是否是数据表的情况下销毁表对我造成了问题,因此通过添加以下检查解决了

var table = $('#tableName')
    if (!$.fn.DataTable.isDataTable('#tableName')) {
       return;
    }
    else {
        var table = $('#tableName').DataTable();
        table.destroy();
    }

答案 3 :(得分:0)

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

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

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

答案 4 :(得分:0)

我有这个问题,我通过添加sDom来解决它:

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

之前:

sDom: ''    

答案 5 :(得分:0)

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

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

必须根据ajax数据填充此columnArray。我为每个ajax调用填充了这个,从而使数组膨胀,同一列的多个条目。我通过将数组重新初始化为[]来修复它。