DataTables“无​​法读取未定义的属性’destroy’

我想创建一个函数来创建一个新的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 }); } 

这个函数可以很好地启动我的第一个表,但是在后续调用中我得到“无法读取’未定义的属性”。

本地JavaScript变量。

函数内定义的变量具有本地范围。 它在function完成时被破坏。

 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变量范围