jQuery dataTables - 获取筛选的列值

foo*_*oop 13 jquery jquery-datatables

我正在使用jQuery dataTable,当用户选择下拉列表时,它会搜索数据表并对其进行过滤,并根据搜索到的数据重新绘制内容:

mtTable.columns().each(function() {
    mtTable.column(22).search(searchVal, true, true).draw();
});
Run Code Online (Sandbox Code Playgroud)

现在我尝试在搜索完成后获取所有列值,但是我找不到执行此操作的函数.目前我正在使用api

var myTable = $("#tblResults").DataTable();
var resultsArray = myTable.columns(colIndex).data();
Run Code Online (Sandbox Code Playgroud)

根据文档,这将返回未经过滤的列中的所有数据.我找不到一个函数来为我提供过滤数据的列值数组.

dav*_*rad 36

您可以selector-modifiers在此处阅读有关dataTables的所有内容- > http://datatables.net/reference/type/selector-modifier

如果您只想获取过滤行:

table.rows( { search:'applied' } ).data().each(function(value, index) {
    console.log(value, index);
});
Run Code Online (Sandbox Code Playgroud)

要定位特定列,并仅获取过滤值(您的特定请求) - 此处列#2中的所有过滤值:

table.column(2, { search:'applied' } ).data().each(function(value, index) {
    console.log(value, index);
});
Run Code Online (Sandbox Code Playgroud)

请参阅演示 - > http://jsfiddle.net/q0e1bdcz/

要为特定列的筛选值创建数组:

var array = [];
table.column(2,  { search:'applied' } ).data().each(function(value, index) {
    array.push(value);
});
console.log(array);
Run Code Online (Sandbox Code Playgroud)

参见演示 - > http://jsfiddle.net/q0e1bdcz/1/

  • 谢谢.我使用table.column(2,{search:'applied'}).data(),它足以满足我的需要 (3认同)