jQuery DataTables - 访问所有行数据

Posted

技术标签:

【中文标题】jQuery DataTables - 访问所有行数据【英文标题】:jQuery DataTables - Access all rows data 【发布时间】:2015-11-03 03:24:36 【问题描述】:

我正在使用 jQuery DataTables 并希望在单击标题复选框时复制所有行(保存在 javascript 数组中)。

我想找到 jQuery DataTables 存储剩余行页面的 HTML 的位置,所以我可以通过 JavaScript 导航,然后在那里检查或将属性检查设置为 true。

类似这样的。

其他信息:

我使用来自 ajax 源 (serverside:false) 的数据,所有数据都返回。 当我单击第 1 页时,所有行都保持选中状态。

【问题讨论】:

【参考方案1】:

解决方案

有many methods 可用于此目的。您可以使用rows().data() 获取所选行的数据。

例子:

var table = $('#example').DataTable();

var data = table
    .rows()
    .data();

alert( 'The table has ' + data.length + ' records' );

演示

有关代码和演示,请参阅this jsFiddle。

【讨论】:

这也是访问 jQuery DataTables 中数据的好方法,但我想要 jQuery DataTables 生成的 html..,我在答案中找到了它..,无论如何谢谢! 你也可以使用table.rows().nodes().to$()来获取所有行节点的jQuery集合。您可以稍后迭代此集合并获取每一行的 HTML。请参阅to$() 了解更多信息。 感谢您的简短回答,如果您发布已编辑的答案,我会将其标记为解决方案。 @janmvtrinidad,如果您需要节点及其 HTML 内容,您的答案会更好。您也可以接受自己的答案。 @RameshPareek,然后使用table.columns(0).data()【参考方案2】:

我使用此代码通过 jQuery DataTables 找到生成的元素,并且可以复制在分页 DataTables 时隐藏的整个 tr 元素。

$('#example').DataTable().rows().iterator('row', function(context, index)
    var node = $(this.row(index).node()); 
    //node.context is element of tr generated by jQuery DataTables.
);

【讨论】:

我怎样才能让它遍历行的每一列并将其与上一行的同一列进行比较? 基本上你可以通过$(this.row(index - 1).node())中的-1来访问前一行。您可以从结果中进行比较【参考方案3】:

如果你这样做:

$('#table').DataTable().rows().data(); 

你会得到很多不必要的数据。

如果你只想要表格数据,你可以这样做:

$('#table').DataTable().rows().data().toArray();

【讨论】:

【参考方案4】:

使用

tableObject.rows().data() 

将返回表中的所有数据。

【讨论】:

【参考方案5】:

设置pageLength:

$('#example').dataTable( 
  "pageLength": 50
 );

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于jQuery DataTables - 访问所有行数据的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jQuery DataTables 和复选框作为行选择器访问列元素数据

JQuery UI Sortable + DataTables显示所有行而不刷新当前页面

jQuery Datatables:iDisplayLength 设置为 -1 以显示所有行

JQuery DataTables - 删除 fnFilter 并显示所有结果

Jquery DataTables 获取表格数据及行数据

jQuery DataTables 遍历行并更改单元格背景