如何使用DataTables fnDestroy方法

Roy*_*ley 6 undefined datatables

我正在使用jQuery的DataTables插件,但在尝试使用fnDestroy方法时不断收到以下错误:

Undefined
Run Code Online (Sandbox Code Playgroud)

我尝试过使用以下所有变种:

1)

 $('#data').dataTable().fnDestroy();
Run Code Online (Sandbox Code Playgroud)

2)

var dt = $('#data').dataTable();
dt.fnDestroy();
Run Code Online (Sandbox Code Playgroud)

3)

var data = document.getElementById('data');
data.fnDestroy();
Run Code Online (Sandbox Code Playgroud)

'data'对象存在 - HTML如下:

<div class="resultset">
     <table class="display" id="data">              
         <tbody>

         </tbody>
      </table>  
</div>
Run Code Online (Sandbox Code Playgroud)

DataTable使用Javascript构建(此处未显示),但基础对象是硬编码的.

API文档显示第二种方法应该有效:

$(document).ready(function() {
  // This example is fairly pointless in reality, but shows how fnDestroy can be used
  var oTable = $('#example').dataTable();
  oTable.fnDestroy();
} );
Run Code Online (Sandbox Code Playgroud)

编辑

DataTable显示正常,否则效果很好.当我尝试执行此功能时出现问题.

nes*_*-EE 14

这似乎是...之间的区别

_table = jQuery('table#fp-table-table').dataTable(); // .fnDestroy() works
Run Code Online (Sandbox Code Playgroud)

_table = jQuery('table#fp-table-table').DataTable(); // .fnDestroy() doesn't work
Run Code Online (Sandbox Code Playgroud)

DataTable似乎是用于API调用回到对象,而dataTable似乎是初始化方法.

在我的项目中,我更改了初始化以使用DataTable而不是dataTable来执行过滤任务.在此之后我的AJAX重新加载会抛出'undefined'错误,所以我把它改回来了......我是.


Tim*_*mer 0

你确定你在运行你的fnDestroy内心document.ready吗?也许您收到未定义的错误是因为 dom 尚未正确加载?

这也可能意味着您的表格不正确,但我必须能够查看这一点才能确定。

看看这个小提琴,它使用你的第二个选项,并且运行完美:http://jsfiddle.net/timsommer/m5sZU/2/