0

現在、Datatables を使用して、情報の行数が異なる 3 つの列を表示しています。

テーブルは、列ヘッダーをクリックすると、その列を参照してテーブルがソートされるように設定されています。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

メソッドは、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 を中心に多くのコードを構築していない限り) 最新バージョン (または完全に別のテーブル/グリッド ライブラリ) にアップグレードすることをお勧めします。

于 2012-07-16T23:10:40.770 に答える
-1

アンダースコア (_) メソッドは、ここで特に役立ちます。過去に私にとってはうまくいきました。オブジェクトの配列を返します。

oTable._('tr', {"filter":"applied"});
于 2013-12-24T17:06:56.507 に答える