从Datatables检索可见数据

时间:2012-07-16 23:04:41

标签: javascript jquery-datatables

我目前正在使用Datatables显示三列,其中包含不同数量的信息行。

设置该表以便在单击列标题时对表进行排序以引用该列。我试图使用fnGetData来获取现在已排序的可见数据。但是,我的尝试只返回表初始化的原始数据。

这大致是代码的样子:

$("#example").click(function() {
           oTable = $('#' + tableName).dataTable();

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

             console.log( secondCellArray)
});

2 个答案:

答案 0 :(得分:-1)

fnGetData方法是正确的(对于Datatables版本< = 1.10)提取数据的方法:

http://legacy.datatables.net/api#fnGetData

根据该文件,该功能将:

  

获取整个表格,单个行或个人的数据   单元格基于提供的参数。

以下是该文档的一个示例:

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

oTable.$('tr').click( function () {
   var data = oTable.fnGetData( this );
   // ... do something with the array / object of data for the row
});

注意:我的原始答案提到使用fnGetData没有参数(很久以前对我有用),文档建议应该仍然有用(“整个表的数据”),但是该答案得到了落实,文档没有具体提供其使用示例,我将避免建议以这种方式使用它。


当然,旧的Datatables有点糟糕,所以很有可能(除非你有很多基于旧Datables构建的代码),你最好的选择是升级到最新版本(或完全升级到另一个表/网格库) )。

答案 1 :(得分:-1)

下划线(_)方法在这里特别有用。它过去对我很有用。它将返回一个对象数组。

oTable._('tr', {"filter":"applied"});