我正在使用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();
根据文档,这将返回未经过滤的列中的所有数据。我找不到一个函数来为我提供过滤数据的列值数组。
答案 0 :(得分:35)
您可以在此处阅读有关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/ 强>
答案 1 :(得分:3)
如果您有更多条目,您还可以获得唯一且已排序的数据。
// 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);
});
希望这也会有所帮助。