DataTable - 为什么我不能让单个列搜索(选择输入)工作?

时间:2016-08-08 17:43:24

标签: javascript jquery datatable datatables

我正在使用来自DataTables.net的JavaScript表格好友包,我遇到了一个非常符合我需要的功能,即单个列搜索(选择输入),found here。< / p>

此功能允许深入查看列数据,并将其过滤掉。

我已经尝试过标准的实现而没有运气。我发现没有关于实现的特定字段,并尝试删除所有其他属性。

我的代码是:

<script type="text/javascript">
    $(document).ready(function() {
        $('#alertLogTable').DataTable( {
            language: {
                url: '//cdn.datatables.net/plug-ins/1.10.11/i18n/Portuguese-Brasil.json'
            },
            responsive: true,
            initComplete: function () {
                this.api().columns().every( function () {
                    var column = this;
                    var select = $('<select><option value=""></option></select>')
                        .appendTo( $(column.footer()).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>' )
                } );
                } );
            }
        });
    });
</script>

datatables.net页面上的演示显示了每列下方的按钮以对其进行过滤。我没有得到那些和过滤功能。我在这里缺少什么?

1 个答案:

答案 0 :(得分:6)

您的代码works fine。我100%确定您忘记加入<tfoot>部分。如果<tfoot>不存在,您的<select>将被插入任何内容,则不会通过魔法添加页脚。所以请记住:

<table>
  <thead>
    <tr><th></th></tr>
  </thead>
  <tbody>
    <tr><td></td></tr>
  </tbody>
  <tfoot>
    <tr><th></th></tr>
  </tfoot>
</table>