私は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();
ドキュメントによると、これはフィルタリングされていない列内からすべてのデータを返します。フィルターされたデータのみの列値の配列を取得する関数が見つかりません。
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);
エントリ数が多い場合は、一意のソートされたデータを取得することもできます。
// 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);
});
これもお役に立てば幸いです。