我正在尝试在datatable中实现自定义过滤.但我在控制台中收到此错误:
Cannot read property ‘push’ of undefined
我有以下代码:
$.fn.dataTableExt.afnFiltering.push( function( oSettings,aData,iDataIndex ) { return true; } ); var table = $('#checkin-checkout-record-table').dataTable({ "bPaginate": true,"bLengthChange": true,"bFilter": true,"bSort": true,"bInfo": true,// "order": [[0,'asc'],[4,'asc']],"aLengthMenu": [50,100],"bAutoWidth": false }); table.draw();
这有什么不对?
解决方法
>如果要通过调用table.draw()来使用API,则需要使用DataTable()而不是dataTable()来初始化表,有关详细信息,请参阅
API.
>如果您使用的是jQuery DataTables的较新版本(1.10),则最好使用$.fn.dataTable.ext.search.push(),参见 Search plug-ins.
>完成搜索后,您需要调用$.fn.dataTable.ext.search.pop()来删除过滤器.
>如果您使用的是jQuery DataTables的较新版本(1.10),则最好使用$.fn.dataTable.ext.search.push(),参见 Search plug-ins.
>完成搜索后,您需要调用$.fn.dataTable.ext.search.pop()来删除过滤器.
例如:
var table = $('#example').DataTable(); $.fn.dataTable.ext.search.push( function( settings,data,dataIndex ) { return (data[0] == 'Airi Satou'); } ); table.draw(); $.fn.dataTable.ext.search.pop();
见this example进行演示.
但是,push()和pop()方法适用于复杂搜索.如果要搜索一列,则有column().search()
API方法.
例如:
var table = $('#example').DataTable(); table.column(0).search('Airi Satou').draw();
有关演示,请参阅this example.