使用DataTables Multi Filter Select切换显示在页眉与页脚中,我想保留标题列标题,或者至少作为我的选择列表中的第一个选项:
<option value="" disabled selected hidden>THIS COL HEADER TITLE</option>
但是,我无法获得列标题。
以下是过滤器:
$('#requests-table').DataTable({
pagingType: "full_numbers",
bSort: false,
initComplete: function() {
//console.log(this.api().columns());
var columns = this.api().columns();
columns[0].shift();
//console.log(this.api().columns());
columns.every(function() {
var column = this;
//console.log(this);
var select = $('<select class="max-width-100"><option value=""></option></select>')
.appendTo($(column.header()).empty())
.on('change', function() {
var val = $.fn.dataTable.util.escapeRegex(
$(this).val()
);
column
.search(val ? '^' + val + '$' : '', true, false)
.draw();
});
column.data().unique().sort().each(function(d, j) {
select.append('<option value="' + d + '">' + d + '</option>')
});
});
}
});
这似乎就是答案:
var idx = table.cell( this ).index().column;
var title = table.column( idx ).header();
...但我不能让它在这里工作。
然后我会选择每个字样的选项:
<option value="" disabled selected hidden>'+ title +'</option>
思考还是帮助?
答案 0 :(得分:0)
替换
var select = $('<select class="max-width-100"><option value=""></option></select>')
与
var select = $('<select><option value="">' + $(this.header()).html() + '</option></select>')