我有数据表和表有ID示例。
现在我需要销毁数据表,然后我写道:
$('#example').dataTable().fnDestroy();
但我明白了:
未捕获的TypeError:无法读取未定义的属性“样式”
这也是我进入控制台日志:
这是什么问题?为什么我不能销毁数据表?怎么解决这个问题?
答案 0 :(得分:18)
对于最新版本的数据表,请使用:
$('#example').DataTable().destroy();
请参阅此内容以获取更多信息:https://datatables.net/reference/api/destroy%28%29
对于旧版本,请按照Hobo Sapiens的说明使用:
$('#example').DataTable().fnDestroy();
答案 1 :(得分:3)
这是v1.10最终对我有用的东西。
// Define a variable for your dataTable object to use
var reportListDataTable = null;
// Then inside a function/method somewhere...
// Destroy the dataTable and empty because the columns may change!
if (reportListDataTable !== null ) {
// for this version use fnDestroy() instead of destroy()
reportListDataTable.fnDestroy();
reportListDataTable = null;
// empty in case the columns change
$('#reportListTableId').empty();
}
// Build dataTable with ajax, columns, etc.
reportListDataTable = $('#reportListTableId').dataTable({
//... Your dataTables code here
});
答案 2 :(得分:0)
对我有用的是点击插入按钮而不是获取数据按钮来破坏dataTable。因此,销毁dataTable的按钮不会重新创建表。从其他按钮单击调用的其他一些函数会创建dataTable。 代码很简单:
销毁dataTable的按钮:
var otable = $('#claimRecordTable').dataTable();
if (otable != null) otable.fnDestroy();
创建dataTable的按钮:
$('#claimRecordTable').dataTable();