【问题标题】:Datatable - rows().data().each() function not working数据表 - rows().data().each() 函数不起作用
【发布时间】:2018-05-12 03:30:40
【问题描述】:

我正在尝试在创建表后遍历行,然后使用以下代码从第一个 td 中删除没有任何子详细信息的任何行的 css 类:

oTable.rows().data().each(function(value, index, id){
    alert('hmm');
    var node = oTable.row(index).node();

    if(value.container_cnt === 0){
    alert('hi');

    $(node).find("td.childShow:before").removeClass("td.childShow:before");
    }
});

但是 each() 函数似乎不起作用。为什么?

表格完整代码:

function(data) {
    var oTable = $('#childInfoTable').DataTable( {  
    ajax: 'childData',
    "dom": 'rt',
    select:"single",
    "columns": [
                {
                "className": 'childShow',
                "orderable":  false,
                "defaultContent": '',
                width:"15px"
                },
             { "data": "id" },
             { "data": "name" },
             ],
             "order": [[1, 'asc']]
            });

    oTable.rows().data().each(function(value, index, id){
        alert('hmm');
        var node = oTable.row(index).node();

        if(value.container_cnt === 0){
            alert('hi');
            $(node).find("td.childShow:before").removeClass("td.childShow:before");
        }
    });

https://jsfiddle.net/nnb97rh9/700/

【问题讨论】:

    标签: javascript java jquery datatable datatables


    【解决方案1】:

    因为你是通过Ajax加载数据,所以到table.rows().data().each()方法调用的时候,还没有加载数据,所以不会调用循环中的任何内容。一个简单的修复方法是将代码放在绘图事件的回调中。因此,代码将在每次加载数据后运行。

    table.on('draw', function(){
      table.rows().data().each(function(value, index){
      alert('why it not coming in?');
      var node = table.row(index).node();
    
      if(value.container_cnt === 0){
      alert('hi');
    
      $(node).find("td.details-control").removeClass("td.details-control");
    }
    

    更新 jsfiddle:https://jsfiddle.net/s048cw6w/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-26
      • 2020-09-05
      • 1970-01-01
      • 2019-03-25
      • 2016-04-09
      • 1970-01-01
      • 2012-09-10
      相关资源
      最近更新 更多