jQuery DataTables:使用按钮过滤所有页面上的行?
jQuery DataTables: Use button to filter rows on all pages?
我正在使用 jQuery DataTables 来格式化 table,我想创建一个按钮来过滤所有页面 上的行 。目前过滤器(切换包含颜色为#bfbfff 的文本的行的可见性)仅适用于当前可见的页面。
我知道我必须使用 DataTables API 才能完成这项工作,我只是不知道如何将我现有的 jQuery 整合到 API 中。
$("a#notes").on("click", function() {
$("#example tbody tr").toggle();
$("#example tbody tr td span[style='color:#bfbfff;']").closest("tr").toggle();
} );
您可以包含自己的过滤器以使其适用于整个数据(所有页面)。阅读有关在数据表中过滤的更多信息 here。
工作 fiddle 使用您的示例。
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();
});
});
使用最新的数据表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();
} );
} );
我正在使用 jQuery DataTables 来格式化 table,我想创建一个按钮来过滤所有页面 上的行 。目前过滤器(切换包含颜色为#bfbfff 的文本的行的可见性)仅适用于当前可见的页面。
我知道我必须使用 DataTables API 才能完成这项工作,我只是不知道如何将我现有的 jQuery 整合到 API 中。
$("a#notes").on("click", function() {
$("#example tbody tr").toggle();
$("#example tbody tr td span[style='color:#bfbfff;']").closest("tr").toggle();
} );
您可以包含自己的过滤器以使其适用于整个数据(所有页面)。阅读有关在数据表中过滤的更多信息 here。
工作 fiddle 使用您的示例。
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();
});
});
使用最新的数据表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();
} );
} );