javascript - 设置检查的数据表 jquery 循环不起作用

标签 javascript jquery datatable

我有代码来检查数据表中ajax响应的数据,这里是:

kpi_id = jsonData.kpi_id;
 var table_kpi_list = $('#kpi_list').DataTable();
 $.each(kpi_id.split(","), function(i,e){
     table_kpi_list.column(1,{ search:'applied' } ).data().each(function(value, index) {
              if(value === e)
              {
                var rows = table_kpi_list.rows({ 'search': 'applied' }).nodes();
                $('input[type="checkbox"]', rows[index]).prop('checked', "checked");
              }
      });
}); 

我没有任何值(value)(尝试使用console.log),然后我尝试对其进行警报,并且它检查了(显示所有值)。但是当我删除警报时,没有检查任何行。
为什么以及如何解决它?谢谢

最佳答案

我通过警报语句猜测我认为 DOM 有足够的时间来完全渲染。因此,您的 $(input[type...) 代码行得到正确执行。我建议您将 setTimeout() 放在 $(input[type...) 代码周围,延迟 200 毫秒,然后看看代码是否正常工作。您的代码可以更改如下:

kpi_id = jsonData.kpi_id;
 var table_kpi_list = $('#kpi_list').DataTable();
 $.each(kpi_id.split(","), function(i,e){
     table_kpi_list.column(1,{ search:'applied' } ).data().each(function(value, index) {
        if(value === e)
        {
            var rows = table_kpi_list.rows({ 'search': 'applied' }).nodes();
            setTimeout(function(){
                $('input[type="checkbox"]', rows[index]).prop('checked', "checked");
            },200);
        }
    });
}); 

关于javascript - 设置检查的数据表 jquery 循环不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37650914/

相关文章:

javascript - 如何使用动态生成的 url 使用 Jquery getScript 缓存

javascript - 如何制作像这种结构的内容 slider

c# - 为什么我添加的数据表行在我的 foreach 循环关闭后立即从表中消失?

excel - 从 primefaces 数据表导出的 excel 文件中不显示标题

javascript - A 帧 : how to change image using javascript

javascript - jQuery 触发 click vs click()?

jquery - 使用关键帧在单击按钮上添加动画

c# - 在 C# 中使用 CSV 作为 datagridview 的数据源

Javascript if 语句只返回 true

javascript - 如何在 while 循环中为每个 div 创建一个 ID 并使用 JQuery 发出警报