Jquery 循环遍历DataTables表以获取所有单元格内容
我正在使用jquery在我的站点上生成分页表。我需要运行一个进程,从特定列中获取所有数据。比如:Jquery 循环遍历DataTables表以获取所有单元格内容,jquery,datatables,Jquery,Datatables,我正在使用jquery在我的站点上生成分页表。我需要运行一个进程,从特定列中获取所有数据。比如: $('.testLink').click(function(){ var cells = new Array(); $('#myTable tr td').each(function(){ cells.push($(this).html()); }); console.lo
$('.testLink').click(function(){
var cells = new Array();
$('#myTable tr td').each(function(){
cells.push($(this).html());
});
console.log(cells);
});
该示例获取了所有信息,但我只需要tds的一列中的信息。我想我可以通过在该行的所有tds中添加一个类来实现这一点,但我相信有更好的方法。这是一个额外的问题
但我真正想知道的是如何让它与数据表一起工作?因为脚本隐藏了大部分要分页的表,所以此函数只获取可见的单元格。我玩弄了
fngedata
,但我没有得到它。有什么想法吗?要访问所有行,您可以执行以下操作:
var rows = $("#myTable").dataTable().fnGetNodes();
在您的情况下,这应该有效:
$('.testLink').click(function(){
var cells = [];
var rows = $("#myTable").dataTable().fnGetNodes();
for(var i=0;i<rows.length;i++)
{
// Get HTML of 3rd column (for example)
cells.push($(rows[i]).find("td:eq(2)").html());
}
console.log(cells);
});
$('.testLink')。单击(函数(){
var单元格=[];
变量行=$(“#myTable”).dataTable().fnGetNodes();
对于(var i=0;i您需要使用“EQ”选择器。它从索引“0”开始,因此如果您有
<tr>
<td>0</td>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
有道理吗
这里有一个使用fnGetData()的方法
首先从插件中获取所有行是否可见的数据。循环每个行数据数组,并将index=1(第二个单元格)推送到新数组中
oTable = $('#example').dataTable();
var secondCellArray=[];
$.each( oTable.fnGetData(), function(i, row){
secondCellArray.push( row[1]);
})
console.log( secondCellArray)
编辑:工作演示…渲染后在控制台中查看
与组合使用可形成紧凑的解决方案。以下函数将返回一个一维数组,其中包含obj_dtable
的n
第列中的所有值:
function getDataTableColumn(obj_dtable,n) {
return $.map(obj_dtable.fnGetData(), function(val) {
return val[n];
});
};
目标是什么?…从API中获取行数据并不困难,在庞大的下载包中可能有一些示例。发布详细信息和代码尝试获取数组中的所有行数据,然后我需要使用这些数据来运行查询。我已经从API中搜索和尝试了数小时,但我无法获取,所以我想尝试一下。他没有“我不想要所有的行。他想要每个节点中都有一个特定的列。是的!谢谢你,这正是我需要的。我可以看出这是如何回答我提出的确切问题的,但我想进一步了解你想用这些行做什么?原因是,有很多单元格(行和列也有)在DataTables呈现过程中,可以使用回调函数(如fnRowCallback
)进行操作。但是,当对任何列应用排序时,您的代码在排序之前不会给出相同的数据…我认为这是错误的…救了我的命!我只想添加一个选项,如果您使用列中的复选框来选择行,则可以使用此选项来获取数据将行内容$('input[name=checkboxID]:选中',$(“#myDataTable”).dataTable().fnGetNodes()).closest('tr');然后使用Andrew发布的迭代。干杯!这对分页表不起作用,不可见的行不存在
function getDataTableColumn(obj_dtable,n) {
return $.map(obj_dtable.fnGetData(), function(val) {
return val[n];
});
};