我想要一个函数来创建一个新的数据表。如果一个表已经存在,我希望我的函数销毁现有表并创建一个新表。

我这样做:

$.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
        });

    }


此函数很好地启动了我的第一个表,但在后续调用中出现“无法读取未定义的属性'destroy'”。

最佳答案

本地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 Variable Scope

关于javascript - 数据表“无法读取未定义的属性'destroy'”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26316294/

10-12 12:55
查看更多