jQuery DataTables - 访问所有行数据

22

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

First Page

我想找到jQuery DataTables存储其余行的HTML的位置,这样我就可以通过JavaScript进行导航,然后在那里检查它或将属性设置为true。

类似于下面的代码。

enter image description here

其他信息:

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

19

解决方案

许多方法可用于此目的。您可以使用rows().data()来获取所选行的数据。

示例:

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

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

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

演示

请查看此jsFiddle获取代码和演示。


1
这也是访问jQuery DataTables中数据的好方法,但我想要由jQuery DataTables生成的HTML代码...我在我的答案中找到了它...无论如何,谢谢! - jmvtrinidad
1
你也可以使用 table.rows().nodes().to$() 来获取所有行节点的 jQuery 集合。稍后,您可以迭代此集合并获取每行的 HTML。有关更多信息,请参阅 to$() - Gyrocode.com
谢谢您的简短回答,如果您发布您编辑过的答案,我会将其标记为解决方案。 - jmvtrinidad
1
@janmvtrinidad,如果你需要节点及其HTML内容,那么你的回答更好。你也可以接受自己的答案。 - Gyrocode.com
你的回答只显示记录数,如果有人想要访问他所选多行的第一列数据,该如何在数组中实现? - Ramesh Pareek
3
@RameshPareek,请使用table.columns(0).data() - Gyrocode.com

16

如果你这样做:

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

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

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

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

15
我用这段代码在jQuery DataTables中找到了生成的元素,我可以复制整个元素,当分页DataTables时该元素会隐藏。
$('#example').DataTable().rows().iterator('row', function(context, index){
    var node = $(this.row(index).node()); 
    //node.context is element of tr generated by jQuery DataTables.
});

如何使其遍历每一行的每一列,并将其与前一行的相同列进行比较? - Jitendra Sawant
基本上,您可以通过从 $(this.row(index - 1).node()) 减去 -1 来访问上一行。 您可以从结果进行比较。 - jmvtrinidad

1
使用。
tableObject.rows().data() 

将从表中返回所有数据。

0

设置页面长度

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

你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接