web-dev-qa-db-ja.com

jQuery dataTables-フィルターされた列の値を取得する

私はjQuery dataTableを使用しています。ユーザーがドロップダウンを選択すると、データテーブルが検索され、フィルター処理され、検索されたデータに基づいてコンテンツが再描画されます。

mtTable.columns().each(function() {
    mtTable.column(22).search(searchVal, true, true).draw();
});

今、私は検索が完了した後、すべての列の値を取得しようとしていますが、これを行う関数を見つけることができません。現在私はAPIから使用しています

var myTable = $("#tblResults").DataTable();
var resultsArray = myTable.columns(colIndex).data();

ドキュメントによると、これはフィルタリングされていない列内からすべてのデータを返します。フィルターされたデータのみの列値の配列を取得する関数が見つかりません。

13
foop

DataTables Advancedについてのすべてを読むことができますselector-modifiersこちら-> http://datatables.net/reference/type/selector-modifier

フィルターされた行のみを取得したい場合:

table.rows( { search:'applied' } ).data().each(function(value, index) {
    console.log(value, index);
});

特定の列をターゲットにし、フィルターされた値のみ(特定の要求)を取得するには、ここで、列#2からのすべてのフィルターされた値:

table.column(2, { search:'applied' } ).data().each(function(value, index) {
    console.log(value, index);
});

両方のデモを見る->http://jsfiddle.net/q0e1bdcz/

特定の列のフィルタリングされた値の配列を作成するには:

var array = [];
table.column(2,  { search:'applied' } ).data().each(function(value, index) {
    array.Push(value);
});
console.log(array);

デモを見る->http://jsfiddle.net/q0e1bdcz/1/

36
davidkonrad

エントリ数が多い場合は、一意のソートされたデータを取得することもできます。

// Datatable object
var table = $('#example').DataTable();

// Get Unique and Sorted values.  
table.column(3, { search:'applied' } ).data().unique().sort().each(function(value, index) {
    console.log(value, index);
});

参照: http://www.jqueryscript.net/demo/DataTables-Jquery-Table-Plugin/examples/api/multi_filter_select.html

これもお役に立てば幸いです。

4
Raja