Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 循环遍历DataTables表以获取所有单元格内容_Jquery_Datatables - Fatal编程技术网

Jquery 循环遍历DataTables表以获取所有单元格内容

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

我正在使用jquery在我的站点上生成分页表。我需要运行一个进程,从特定列中获取所有数据。比如:

$('.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];
    });
};