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

2021/01/29 07:11 · jquery ·  · 0评论

我正在使用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<rows.length;i++)
        {
            // Get HTML of 3rd column (for example)
            cells.push($(rows[i]).find("td:eq(2)").html()); 
        }
        console.log(cells);
    });

这是使用fnGetData()的方法

首先从插件获取数据,该数据将显示所有行或不显示。循环遍历每个行数据数组,并将index = 1(第二个单元格)推入新数组

     oTable = $('#example').dataTable();

      var secondCellArray=[];
      $.each( oTable.fnGetData(), function(i, row){
          secondCellArray.push( row[1]);
    })

     console.log( secondCellArray)

EDit:工作演示...渲染后在控制台中查看

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

jQuery.map与结合使用fnGetData()可提供紧凑的解决方案。以下函数将返回一维数组,其中包含来自obj_dtablenth列的所有值

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

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

<tr>
  <td>0</td>
  <td>1</td>
  <td>2</td>
  <td>3</td>
</tr>

然后通过使用

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

说得通?

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

本文地址:http://jquery.askforanswer.com/bianlidatatablesbiaoyihuoqusuoyoudanyuangeneirong.html
文章标签: ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!