jQuery DataTable过滤 - 如此令人困惑

Sam*_*elC 2 datatables

我是https://datatables.net/上的jQuery dataTables插件的新手

我正在尝试为表实现自定义过滤器:

基本上,当我单击一个按钮时,自定义过滤功能将测试所有行的列#1(数值)的值,如果列中的值<50,则行保持不变,否则该行将被隐藏.

这个概念应该很简单,但我似乎无法找到使用API​​的正确方法:

  • column.filter()返回一个列值数组
  • column.search()只能接受文本数据(不是函数)

什么是可以达到效果的API?

有什么类似的以下内容吗?

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

api.column(1).data().somefilterfunction(function (val, ind) {
    return parseFloat(val) < 50;
}).draw();
Run Code Online (Sandbox Code Playgroud)

dav*_*rad 10

你有没有在文档中看到这篇文章 - > https://datatables.net/examples/plug-ins/range_filtering.html ??

您可以通过按钮触发即时创建自定义过滤功能:

<button id="filter">filter < 50</button>
Run Code Online (Sandbox Code Playgroud)

脚本:

$("#filter").click(function() {
    $.fn.dataTable.ext.search.push(
        function( settings, data, dataIndex ) {
            return parseFloat(data[0])<50
                ? true
                : false
        }     
    );
    table.draw();
    $.fn.dataTable.ext.search.pop();
});
Run Code Online (Sandbox Code Playgroud)

演示 - > http://jsfiddle.net/dpwgqs2o/

请注意,过滤器是在单击处理程序本身内创建的,并在绘制表后立即再次删除.这使得过滤器是临时的,即当用户单击列标题时,过滤器被清除.如果您想要永久过滤器,请将过滤器设为全局过滤器,不要将其删除.