0

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

该表已设置为,当单击列标题时,该表将根据该列进行排序。我正在尝试使用 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)
});
4

2 回答 2

-1

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

oTable._('tr', {"filter":"applied"});
于 2013-12-24T17:06:56.507 回答
-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不带参数(很久以前对我有用),并且文档建议应该仍然有效(“整个表的数据”),但是由于该答案被否决并且文档没有具体提供它的用法示例,我将避免建议以这种方式使用它。


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

于 2012-07-16T23:10:40.770 回答