循环访问DataTables表以获取所有单元格内容

我正在使用jquery dataTables在我的网站上生成分页表。 我需要运行一个从特定列中获取所有数据的进程。 就像是 :

$('.testLink').click(function(){ var cells = new Array(); $('#myTable tr td').each(function(){ cells.push($(this).html()); }); console.log(cells); }); 

这个例子抓住了一切,但我只需要来自一列tds的信息。 我想我可以通过在该行的所有tds中添加一个类来做到这一点,但我确信有更好的方法。 这是一个奖金问题..

但我真正想知道的是如何使用数据表? 因为脚本隐藏了表的大部分内容以放入分页,所以此函数仅抓取可见的单元格。 我玩fnGetData但我没有得到它。 有任何想法吗?

要访问所有行,您可以执行以下操作:

 var rows = $("#myTable").dataTable().fnGetNodes(); 

在你的情况下,这应该工作:

  $('.testLink').click(function(){ var cells = []; var rows = $("#myTable").dataTable().fnGetNodes(); for(var i=0;i 

这是一个使用fnGetData()的方法

首先从插件中获取数据,这些数据将是所有行可见或不可见。 遍历每个行数据数组,并将index = 1(第二个单元格)推入新数组

  oTable = $('#example').dataTable(); var secondCellArray=[]; $.each( oTable.fnGetData(), function(i, row){ secondCellArray.push( row[1]); }) console.log( secondCellArray) 

编辑:工作演示…渲染后在控制台中查看

http://live.datatables.net/apixiv/edit#javascript,html

jQuery.map结合fnGetData()构成了一个紧凑的解决方案。 以下函数将返回一个包含obj_dtablen列中所有值的一维数组:

 function getDataTableColumn(obj_dtable,n) { return $.map(obj_dtable.fnGetData(), function(val) { return val[n]; }); }; 

您将要使用“EQ”选择器。 它从索引“0”开始,所以如果你有..

  0 1 2 3  

然后通过使用

  $("td").eq(3); // last one $("td").eq(2); //returns "2" 

合理?

http://api.jquery.com/eq-selector/