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 以显示所有行