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);
});
надеюсь, что это поможет.