gpt4 book ai didi

javascript - 数据表:可以在事件监听器中使用each()吗?

转载 作者:行者123 更新时间:2023-12-03 05:09:30 24 4
gpt4 key购买 nike

我有一个数据表,我需要在其中做两件事:

  • 对一列中的所有数字求和。
  • 查明另一列中的单元格是否具有特定值,如果是,则将其清空。 (原因:如果不插入日期,MySQL 表的默认日期为“1970-01-01”。我想用空单元格替换所有“1970-01-01”实例)。<

为此,我将事件监听器附加到绘制事件,然后:

  • 对于 1),我使用了 sum() 数据表插件。
  • 对于 2),我遵循了这个答案:Find and replace cells value with Datatables plugin ,并使用each()。

    var tabla=$('#list').DataTable();
    tabla.on('draw.dt', function() {
    var bla=tabla.column(10).data().sum();
    tabla.column(9).nodes.each(function(node, index, dt) {
    var ble=tabla.cell(node).data();
    if (/^1970-01-01/.test(ble)) {
    table.cell(node).data('');
    }
    });
    });

问题是,当我执行此操作时,我得到一个“tabla.column(...).nodes.each is not a function”。四处搜索,我发现这个错误大多数时候是在 jQuery 或数据表尚未初始化时引起的......但就我而言,它们肯定是这样,因为第一件事( sum()) 确实完成;换句话说,“bla”变量确实被计算了。

这让我想知道是否可以在事件触发器中使用each();否则,可能是什么原因造成的?

最佳答案

您可以使用$.each迭代任意集合的函数

但是,尽管我不确定您对该列总和的意图是什么,但我建议使用 render涉及的每个列的选项。

例如,对于日期列,您可以使用如下所示的渲染函数:

render: function (data,type,fullRow){
if(data === '1970-01-01') {
return null;
}
else {
return data;
}
}

(免责声明:未经测试!)

每次数据表需要重绘表格时,都会调用drawCallback函数(以及绘制事件):初始加载、过滤、排序、添加新行等。这可能会产生一些不可预见的附带影响,或者只是对性能产生影响。希望对您有帮助!

关于javascript - 数据表:可以在事件监听器中使用each()吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41880544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com