每次调用函数lds时,我都会初始化一个Datatable。函数lds为表提取数据,并通过

$('#tablebody').html(data);


之后,我要像这样初始化一个数据表,

$('#rTable').Datatable({
      paging:false,
      destroy: true
});


如果我再次调用lds函数,则可以解决错误“无法初始化数据表”的问题。但是保留了以前附加的旧行。我尝试了以下方法:

将var table分配给Datatable的初始化,并将table.empty()放在lds的开头。但是正如预期的那样,表变量未定义。

试图在长度> 0时删除row(0),但这会弄乱表并将其删除。

尝试('#rTable')。empty(),但由于此Datatables引发未定义的错误d [i]。

每当调用函数lds时,我可以采取什么方法来清空行。

最佳答案

单击按钮销毁现有表

var table = $('#myTable').DataTable();

$('#tableDestroy').on( 'click', function () {
    table.destroy();
} );


从服务器重新加载完整的表描述,包括列:

var table = $('#myTable').DataTable();

$('#submit').on( 'click', function () {
    $.getJSON( 'newTable', null, function ( json ) {
        table.destroy();
        $('#myTable').empty(); // empty in case the columns change

        table = $('#myTable').DataTable( {
            columns: json.columns,
            data:    json.rows
        } );
    } );
} );

07-24 18:14