循环访问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)
编辑:工作演示…渲染后在控制台中查看
jQuery.map
结合fnGetData()
构成了一个紧凑的解决方案。 以下函数将返回一个包含obj_dtable
第n
列中所有值的一维数组:
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"
合理?