2012-07-16 47 views
0

我目前使用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) 
}); 

回答

-1

fnGetData方法是正確的(對於數據表<版本= 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沒有參數(這是很久以前的工作對我來說)我原來的答覆中提到,和文檔表明,應該仍然可以工作(「整個表格的數據」),但是由於該答案被下調並且文檔沒有具體提供其用法的示例,所以我將避免推薦以這種方式使用它。


當然,舊的數據表是一種可怕的,所以最有可能的(除非你有很多的周圍的老Datables編譯後的代碼)你最好的選擇是升級到最新的版本(或其他表/網格庫完全)。

-1

下劃線(_)方法在這裏特別有用。它在過去對我來說很好。它將返回一個對象數組。

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