【发布时间】: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