Javascript jQuery DataTables:是否使用按钮筛选所有页面上的行?
我正在使用jquerydatatables格式化一个表,我想创建一个按钮来过滤所有页面上的行。当前,过滤器(用颜色#bff切换包含文本的行的可见性)仅适用于当前可见的页面 我知道我必须使用来实现这一点,我只是不知道如何将我现有的jQuery集成到API中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:#
$("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提交了一个答案,逻辑上有点不同。