我想省略数据表过滤器功能中的某些列。我解决了特定情况,我需要概括代码。
(gdb) break api_solver.cpp:247
Breakpoint 2 at 0x7ffff5afbb31: file ../src/api/api_solver.cpp, line
247.
(gdb) cont
Continuing.
Breakpoint 2, Z3_solver_assert ( ... ) at ../src/api/api_solver.cpp:247
247 to_solver_ref(s)->assert_expr(to_expr(a));
non_filterable = [0];
$(document).ready(function() {
// Setup - add a text input to each footer cell
var i = 0;
$('#example th').each( function () {
if (i != non_filterable) {
var title = $(this).text();
$(this).html( '<input type="text" placeholder="Search '+title+'" />' );
}
i++;
} );
// DataTable
var table = $('#example').DataTable({
bSortCellsTop: true, dom: 't',
info: false, columnDefs: [{ "targets": non_filterable, "searchable": false}],
});
// Apply the search
table.columns().every( function () {
var that = this;
$( 'input', this.header() ).on( 'keyup change', function () {
if ( that.search() !== this.value ) {
that
.search( this.value )
.draw();
}
} );
} );
} );
在上面创建的示例中,它可以省略对第0列的过滤。但是,例如,将“不可过滤”变量更改为[0,2]不起作用。如何实现从过滤器功能中省略列的一般解决方案?
答案 0 :(得分:1)
您需要使用indexOf()来检查non_filterable数组中是否存在索引。
像这样:
non_filterable = [0,2];
$(document).ready(function() {
// Setup - add a text input to each footer cell
var i = 0;
$('#example th').each( function () {
if (non_filterable.indexOf(i)===-1) {
var title = $(this).text();
$(this).html( '<input type="text" placeholder="Search '+title+'" />' );
}
i++;
} );
// rest of your code
});