DataTables Multi Filter在Select中选择列标题?

时间:2015-12-14 17:39:51

标签: jquery datatables

使用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>

思考还是帮助?

1 个答案:

答案 0 :(得分:0)

替换

var select = $('<select class="max-width-100"><option value=""></option></select>')

var select = $('<select><option value="">' + $(this.header()).html() + '</option></select>')