我正在使用TableExport.js脚本导出html表,并且需要通过隐藏不需要的行对数据进行过滤后再导出数据。 TableExport的方法.update()在这里真的很有用,但是每次过滤与onchange事件相关的数据时,我都会遇到一些问题。这是我的代码的相关部分:

$(function () {
    var exportedTable = $("#taskListTable").tableExport();
    exportedTable.update({
        // some options
    });

    $('body').on('change', '.filter', function (exportedTable) {
        // some code for filtering
        tableUpdate(exportedTable);
    });
})

function tableUpdate(table) {
    table.update({
        ignoreCSS: ["tr.tableexport-ignore", "tr.tableexport-ignore>td",
                    "tr.tableexport-ignore>th", "tr.hidden", "tr.hidden>td"]
    });
}


我不断收到类型为Uncaught TypeError: Cannot read property 'update' of undefined的错误。我一直在阅读许多线程(例如:Javascript passing object to function)和其他信息,以了解按值传递和引用传递之间的区别,但是阅读和尝试的次数越多,我的头脑就会变得越混乱。那么,谁能看到我的方法失败了吗? -虽然这部分是遗留代码,但如有必要,我愿意重新构建大部分代码。

我想这更多是JS滥用的问题,所以我希望这个问题对使用TableExport的人和有类似JS问题的人都有用。所以我召唤你,JavaScript Jedis!

最佳答案

使用事件对象作为参数调用事件处理函数。您可能只想从作用域访问exportedTable,而不是接受它作为参数。

07-24 17:57