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();

согласно документации, это вернет все данные из столбца нефильтрованными. Я не могу найти функция, чтобы дать мне массив значений столбцов только для отфильтрованных данных.

2 ответов


вы можете прочитать все о 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/


вы также можете получить уникальные и отсортированные данные, если у вас больше записей.

// 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);
});

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

надеюсь, что это поможет.