我(尝试)使用jQuery数据表https://datatables.net/
我的表中只有一个列,只有数字。例如:
<table id="queue-table">
<tr>
<td>Name</td>
<td>Count</td>
</tr>
<tr>
<td>joe</td>
<td>1</td>
</tr>
<tr>
<td>sam</td>
<td>0</td>
</tr>
<tr>
<td>mike</td>
<td>2</td>
</tr>
</table>
我想制作一个过滤器,只显示计数大于0的行。所以我无法进行搜索,因为它可以是1,2,3等......
我尝试使用filter()
方法。这是文档https://datatables.net/reference/api/filter()
以下是我的代码:
var table = $('#queue-table').DataTable();
table.column(1).data().filter( function ( value ) {
return value > 0 ? true : false;
}).draw();
我希望这只用2条记录绘制表格,但它会显示所有行。我在这里做错了什么?
答案 0 :(得分:1)
filter()
返回一组已过滤的行,但不会对数据集本身执行过滤。正如您在问题中提供的链接所示:
此方法不应与用于的search()DT混淆 在DataTable中搜索记录。 (...)并作为一个提供 DataTables API的实用工具方法。
(请参阅下面的演示,了解概念证明 - 您的代码完全按照预期的方式执行:它返回一个包含两行的API实例,其中包含值1
和2
。
要执行您想要的操作,您可以创建自定义过滤功能:
$.fn.dataTable.ext.search.push(
function( settings, data, dataIndex ) {
return parseInt(data[1]) > 0 ? true : false;
}
);
table.draw();
参见演示 - &gt;的 http://jsfiddle.net/fw8zu34t/ 强>