javascript - jQuery 数据表 - 如何使用 filter()?

标签 javascript jquery datatables

我尝试使用 https://datatables.net/reference/api/filter()但没有效果。 我想通过单击复选框来过滤列。

代码:

var table = $('#table').DataTable();

var filteredData = table
    .column( 0 )
    .data()
    .filter( function ( value, index ) {
        return value > 4000 ? true : false;
    } );

$("#show_only_packed").click(function() {
    if ($(this).is(":checked")) {
        filteredData.draw();
    }
});

实际上我使用了 search() 但我想了解如何使用 filter()

$("#show_only_packed").click(function() {
    if ($(this).is(":checked")) {
        table.column( 3 ).search( 'Spakowano' ).draw();
    } else {
        table.column( 3 ).search('').draw();
    }
});

最佳答案

CAUSE

API 方法 filter()经常与 search() 混淆但不影响表。它只返回根据给定条件过滤后的数据。

SOLUTION

您需要使用 custom filtering相反。

例如:

$('#show_only_packed').on('click', function(){
   if(this.checked){
      $.fn.dataTable.ext.search.push(
         function (settings, data, dataIndex){
            return (data[0] > 4000) ? true : false;
         }
      );
   }

   table.draw();

   if(this.checked){
      $.fn.dataTable.ext.search.pop();    
   }
});

DEMO

参见 this jsFiddle用于代码和演示。

关于javascript - jQuery 数据表 - 如何使用 filter()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33803947/

相关文章:

javascript - SVG 失去形状平滑度,点击时改变颜色

javascript - 不确定为什么变量未定义。可能的范围问题?

javascript - 从内部更改 iframe

jquery - 禁用悬停 jquery 上的点击触发器

jquery - 以特殊格式对数据表中的数字进行排序

javascript - 显示 GeoJson 文件中的一个 map 标记

jquery - 单击图像不会在 chrome 中加载

javascript - jquery .each() 在 IE 9 中不起作用

javascript - DataTables:按回车键以对文本框使用分页

javascript - 如何使用 Javascript 数据表