如何遍历 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 中的所有 tableHeader 值更改为大写
如何修复移动设备上 jQuery DataTables 中的 scrollX 移动问题?