我尝试使用 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/