jQuery数据表格 - 获取筛选后的列值

15

我正在使用 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();

根据文档,这将返回列中所有未经过滤的数据。我找不到一个函数可以给我一个仅包含筛选数据的列值数组。

3个回答

42
你可以在这里阅读有关dataTables高级选择器修饰符的所有内容->http://datatables.net/reference/type/selector-modifier 如果你只想获取筛选后的行:
table.rows( { search:'applied' } ).data().each(function(value, index) {
    console.log(value, index);
});

如果您想要针对特定列获取筛选值(符合您的具体需求),请使用以下代码 - 这里将会返回第二列的所有筛选值:

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/


有没有任何选项可以获取所有列的查询字符串序列化过滤器? - andilabs

4

0
以下是我用来获取特定列所有值的解决方案:

oTable = $('#myDatatable').DataTable({
 //your code for datatable
 })

oTable.on('search.dt', function () {
   oTable.column(10).nodes().each(function (cell) {
        var val = cell.innerHTML;
                console.log(val);
                                });
                            })


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接