【问题标题】:DataTables - Remove DataTables from HTML Table created in different JavaScript FileDataTables - 从不同 JavaScript 文件中创建的 HTML 表中删除 DataTables
【发布时间】:2014-08-20 03:52:38
【问题描述】:

所以我有一个我每天都会访问的网站。该站点上的DataTables 实现非常糟糕。 DataTable 应用于呈现页面时生成的 HTML 表,然后在其上初始化 DataTable。我认为这很棒,因为我可以创建一个小 TamperMonkey 脚本来删除可怕的 DataTable 并创建一个按照我需要的方式运行的脚本。

DataTable 是通过文档body 末尾的内联Javascript 创建的。对于destory() 方法,我根据DOCs 尝试了以下操作。

// ==UserScript==
// @name       
// @version    0.1
// @description  Makes the Invoice Table more user friendly
// @include      URL
// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @require  http://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.1/js/jquery.dataTables.min.js

// @copyright  2014+, Me
// ==/UserScript==
$(function() {
   var t = $('#customer_invoices').DataTable();
   t.destroy();

});

它不会“删除这些增强功能并将表格返回到其原始未增强状态,数据显示在表格中”如文档中所述。它似乎没有做任何事情。

我认为这要么是因为该表尚未初始化 DataTable,要么是我无法访问不同范围内的原始 DataTable 初始化。

非常感谢任何帮助,因为这让我把头撞在桌子上。

【问题讨论】:

  • 您是否考虑过清除表内的所有类/id 名称,从而将其恢复为通用 html 表?
  • @Eclecticist 我没有,因为 DT 初始化还将参数 bVisible 添加到某些行。我希望在销毁 DT 时让这些行再次可见。
  • 该元素已经变成了一个数据表元素,所以你不需要调用dataTable()(注意骆驼的情况)......这将是访问@987654330的问题已经在内存中的对象的@方法。我正在修补,如果我知道怎么做,我会发布答案。您可能还希望绑定一个自定义事件侦听器,该侦听器在调用 dataTable 时对元素调用 destroy 以确保在元素的 dataTable 初始化之后调用 destroy。

标签: javascript jquery datatable


【解决方案1】:

使用.destroy() 方法是不可能的。

如果你打开一个控制台,你通常可以通过运行:

$("#elementID").dataTable.destroy()

注意:我没有使用dataTable().destroy(),因为该元素已经是一个dataTable。

但是,您遇到的问题是不存在 destroy 方法...因为 dataTable 源代码已被缩小,不再称为 destroy... 而是给出了一个带有占用空间小得多(可能是 b 或 c d 或类似的东西)。

做你想做的事情的唯一方法是物理改变元素的属性,使它成为一个数据表......或者为缩小文件寻找一个地图文件,这可以让你找到哪个缩小应调用函数引用而不是 destroy() 以获得所需的效果。

【讨论】:

  • 如果我在我的脚本上使用未缩小的版本,它会起作用吗?我在控制台中没有收到关于 destroy 方法的错误,这是不是这样?我正在考虑访问 DT 中的数据对象并从头开始重新创建表。
  • 很难说...这取决于 DT 源代码是否在返回元素上的实现功能之前检查给定元素上的现有实现。最好的办法是尝试使用原型在 DataTable 上重新实现所需的功能,并使用所需的方法名称,然后在任何数据表元素上调用 destroy
【解决方案2】:

您可以选择的另一种方法是在进行任何更改之前克隆您的 div。在进行更改后用克隆替换该 div。

【讨论】:

    猜你喜欢
    • 2021-04-11
    • 1970-01-01
    • 1970-01-01
    • 2017-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-26
    • 1970-01-01
    相关资源
    最近更新 更多