我想要一个函数来创建一个新的数据表。如果一个表已经存在,我希望我的函数销毁现有表并创建一个新表。
我这样做:
$.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/