【问题标题】:Retrieving visible data from Datatables从数据表中检索可见数据
【发布时间】:2023-03-22 07:34:01
【问题描述】:

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

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

【问题讨论】:

    标签: javascript jquery-datatables


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      fnGetData 方法是提取数据的正确方法(适用于 Datatables 版本

      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 构建的代码)你最好的选择是升级到最新版本(或完全升级到另一个表/网格库)。

      【讨论】:

        猜你喜欢
        • 2012-07-14
        • 1970-01-01
        • 2016-03-29
        • 1970-01-01
        • 1970-01-01
        • 2012-02-07
        • 1970-01-01
        相关资源
        最近更新 更多