如何在单列上的jquery datatables插件上添加下拉过滤器?

Was*_*hir 7 jquery html5 datatables

我想dataTables在一个列上添加一个下拉过滤器.我添加了以下代码,但它在所有列上添加了下拉列表:

$('#dataTables-example').DataTable({
    responsive: true,
    "pageLength": 100,
    "lengthMenu": [100, 250, 500, "All"],
    initComplete: function () {
        this.api().columns().every( function () {
        var column = this;
        $('#dataTables-example .head .head_hide').html('');

        var select = $('<select id="formfilter" class="filterdropdown"><option value="">'+$(column.header()).text()+'</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>' )
        });
    }); 
});
Run Code Online (Sandbox Code Playgroud)

Gyr*_*com 11

更改

this.api().columns().every( function () {
Run Code Online (Sandbox Code Playgroud)

this.api().columns(1).every( function () {
Run Code Online (Sandbox Code Playgroud)

其中1是从零开始的列索引.

笔记

  • 要向某些列添加过滤器,请使用columns([1,3])格式.
  • 您需要禁用该列的排序,因为每次单击过滤器时,您的列都将被排序.否则,请使用多行标题或将过滤器添加到页脚.