数据表“不能读取属性‘破坏’的未定义”(DataTables “Cannot read proper

2019-10-21 03:01发布

我想打一个函数来创建一个新的DataTable。 如果表已经存在,我想我的功能破坏现有的表,并创建新的一个。

我这样做:

$.ajax().done(function(response){
            Init_DT(response['cols'], response['data']);
        });

function Init_DT(cols, data){

        if($('#mytable tr').length > 0){
            table.destroy();
        }

        var table = $('#mytable').DataTable({
            "data": data,
            "columns": cols
        });

    }

此功能能很好地开始我的第一个表,但我得到“无法读取属性‘破坏’的未定义”在随后的调用。

Answer 1:

本地JavaScript的变量。

在函数内部中定义的变量具有本地作用域。 当函数完成它被摧毁。

function myFunction() {
var myVar = "value";}

这个功能将myVar的功能后销毁已完成其工作。 在接下来的通话将被重新定义。

使用全局变量。 即定义它的功能外,然后使用它。 即

var myVar='value';function myFunction(){//here myVar can be accessed}

或者你的函数内赋值给变量将成为全球性的。

function myFunction(){ myVar = 'value'; }

现在myVar的也将是全球性的。

因此,你需要使用

table = $('#mytable').DataTable({
            "data": data,
            "columns": cols
        });

参考: W3Schools的JS变量的范围



文章来源: DataTables “Cannot read property 'destroy' of undefined”