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