You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用$.fn.DataTable.tables()时如何销毁指定DataTable表格

DataTable多实例销毁报错修复方案

报错根因

$.fn.DataTable.tables() 返回的是页面上所有绑定了DataTable的原生DOM节点数组,而非DataTable实例对象。原生DOM节点没有.destroy()方法,因此会抛出方法不存在的错误。

可选用修复方案

  • 方案1:将DOM节点转为DataTable实例后销毁
    如果仍需要通过下标定位目标表格,调用$.fn.DataTable.Api()将获取到的DOM节点转为实例再执行销毁操作:
// 获取所有关联DataTable的表格DOM节点
var allTableDoms = $.fn.DataTable.tables();
// 转换为对应DataTable实例
var targetTable = new $.fn.DataTable.Api(allTableDoms[i-1]);
// 执行销毁,传true可同时移除表格DOM
targetTable.destroy();
  • 方案2:初始化时存储实例(更推荐,索引准确性更高)
    初始化每个表格时就将实例存入全局数组,后续销毁直接取对应实例调用方法即可:
// 全局存储实例的数组
var dataTableList = [];
// 初始化时依次存入
dataTableList.push( $('#table1').DataTable({
  // 对应表格的初始化配置
}) );
dataTableList.push( $('#table2').DataTable({
  // 对应表格的初始化配置
}) );

// 销毁指定下标的表格
dataTableList[i-1].destroy();
  • 方案3:通过选择器直接获取实例销毁
    如果目标表格有唯一的ID或类名选择器,可以直接定位后调用实例方法:
// 销毁id为target-table的DataTable实例
$('#target-table').DataTable().destroy();

内容的提问来源于stack exchange,提问作者Zerox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 22:18:02