如何遍历 DataTables jQuery 中的所有行?

Posted

技术标签:

【中文标题】如何遍历 DataTables jQuery 中的所有行?【英文标题】:How to loop through all rows in DataTables jQuery? 【发布时间】:2015-05-18 15:08:28 【问题描述】:

我正在使用 jquery 插件 DataTables 来构建漂亮的表格

  var table = $('#example').DataTable(
    "data": source
);

我希望为表中的所有行创建一个 each

不幸的是,这种方式可能已经过时并且不适用于新版本(它会启动错误)

$(table.fnGetNodes()).each(function () 

);

这种方式仅适用于可见行(前 10 行,因为其他行是分页的)

 table.each( function ( value, index ) 
    console.log( 'Data in index: '+index+' is: '+value );
 );

请问你知道如何循环到所有行吗?

【问题讨论】:

什么意思?你想显示所有行吗?如果是这样,那么你可以试试这个:var table = $('#example').DataTable( "paging":false ); 感谢您的回答,不,我不想显示所有行,我想动态循环代码中的所有行,甚至是分页的行 也许你可以只使用数据..我的意思是你填写数据表的数据来源..我不确定.. 是的,好主意,但碰巧 init dataTable 数据已被用户更改(我有一个允许用户编辑、添加和删除行而不重绘所有 dataTable 的系统)。我想知道例如第 27 行显示的是哪一行 Unfortunately this way may be out of date and does't work with new version (it launchs an error) 它抛出的错误是什么? 【参考方案1】:

我终于找到了:

 var data = table.rows().data();
 data.each(function (value, index) 
     console.log(`For index $index, data value is $value`);
 );

【讨论】:

警告:这只会迭代传递给 dataTables 的数据本身 - 所以你给它的任何 html 都将是这个方法中的一个字符串。 我终于找到你了。非常感谢您的回答 如何只获取特定的列值? 我只得到第一页数据。如何获取下一页?【参考方案2】:

数据表的每一行都有一个迭代器rows().every(),this 指的是被迭代的当前行的上下文。

tableName.rows().every(function()
    console.log(this.data());
);

【讨论】:

通过这个我们将获得当前寻呼机的行。如何获取所有寻呼机数据。【参考方案3】:

如果您使用的是旧版 DataTables,那么您可以获得所有行甚至是分页的行,如下所示...

table.fnGetNodes(); // table is the datatables object.

所以我们可以使用jQuery提供的.each()方法循环遍历行。

jQuery(table.fnGetNodes()).each(function () 
// You can use `jQuery(this).` to access each row, and process it further.            
);

【讨论】:

【参考方案4】:

例如,此数据包含三个字段 UserID、UserName 和 isActive,我们只想显示活跃用户 以下代码将返回所有行。

var data = $('#myDataTable').DataTable().rows.data();

我们将只打印活跃用户

data.each(function (value, index) 
  if (value.isActive)
  
     console.log(value.UserID);
     console.log(value.UserName);
  
);

【讨论】:

以上是关于如何遍历 DataTables jQuery 中的所有行?的主要内容,如果未能解决你的问题,请参考以下文章

如何将我的自定义 jquery 表行过滤与 datatables.net 集成?

如何替换 jQuery DataTables 中的数据数组

如何在 jQuery 导出时将 dataTables 中的所有 tableHeader 值更改为大写

如何修复移动设备上 jQuery DataTables 中的 scrollX 移动问题?

如何在 jQuery DataTables 中的分页期间滚动到第一行

如何根据Datatables jquery中的单元格值禁用行复选框