我正在使用来自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页面上的演示显示了每列下方的按钮以对其进行过滤。我没有得到那些和过滤功能。我在这里缺少什么?
答案 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>