Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery DataTables:是否使用按钮筛选所有页面上的行?_Javascript_Jquery_Css_Datatables_Jquery Datatables - Fatal编程技术网

Javascript jQuery DataTables:是否使用按钮筛选所有页面上的行?

Javascript jQuery DataTables:是否使用按钮筛选所有页面上的行?,javascript,jquery,css,datatables,jquery-datatables,Javascript,Jquery,Css,Datatables,Jquery Datatables,我正在使用jquerydatatables格式化一个表,我想创建一个按钮来过滤所有页面上的行。当前,过滤器(用颜色#bff切换包含文本的行的可见性)仅适用于当前可见的页面 我知道我必须使用来实现这一点,我只是不知道如何将我现有的jQuery集成到API中 $("a#notes").on("click", function() { $("#example tbody tr").toggle(); $("#example tbody tr td span[style='color:#

我正在使用jquerydatatables格式化一个表,我想创建一个按钮来过滤所有页面上的行。当前,过滤器(用颜色#bff切换包含文本的行的可见性)仅适用于当前可见的页面

我知道我必须使用来实现这一点,我只是不知道如何将我现有的jQuery集成到API中

$("a#notes").on("click", function() {
    $("#example tbody tr").toggle();
    $("#example tbody tr td span[style='color:#bfbfff;']").closest("tr").toggle();
} );

您可以包括自己的过滤器,以使其适用于整个数据(所有页面)。阅读有关在datatables中进行筛选的更多信息

使用您的示例进行工作

javascript必须类似于:

$(document).ready(function() {

    var oTable = $('#example').dataTable();

    $("a#notes").on("click", function() {
        oTable.dataTableExt.afnFiltering.push( 
             function( oSettings, aData, iDataIndex ) { 
             var tr = oTable.fnGetNodes(iDataIndex);
             var result=$(tr).find("td span[style='color:#bfbfff;']");    
             return result.length;
        });
        oTable.fnDraw();
    });     

});

使用最新的DataTables API:

var _fieldNotesFilter = false;

$.fn.dataTable.ext.search.push( function ( settings, searchData, index, rowData, counter ) {
    if ( settings.nTable.id !== 'example' ) {
        return true;
    }

    if ( ! _fieldNotesFilter ) {
        return true;
    }
    else if ( rowData.item.match(/rgb\(191, 191, 255/) || rowData.item.match(/#bfbfff/) ) {
        return true;
    }
    return false;
} );


$(document).ready( function () {
    $('#filter_notes').on( 'click', function () {
        //Invert the filtering flag
        _fieldNotesFilter = ! _fieldNotesFilter;

        // Redraw the table to update the filtering change
        $('#example').DataTable().draw();
    } );
} );

感谢您的建议,虽然它可以工作,但它包含过时的DataTables API。我已经用最新的API提交了一个答案,逻辑上有点不同。