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();
根据文档,这将返回未经过滤的列中的所有数据。 我找不到一个函数来为我提供过滤数据的列值数组。
你可以在这里阅读关于dataTables高级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); });
参考: http : //www.jqueryscript.net/demo/DataTables-Jquery-Table-Plugin/examples/api/multi_filter_select.html
希望这也会有所帮助。