我调整了以下jsfiddle:http://jsfiddle.net/16bmcr6d/4/
这是我到目前为止的代码:
$(document).ready(function () {
(function ($) {
$('#filter').keyup(function () {
var rex = new RegExp($(this).val(), 'i');
$('.searchable tr').hide();
$('.searchable tr').filter(function () {
return rex.test($(this).text());
}).show();
})
}(jQuery));
});
如果选中此复选框后,如何进一步调整以隐藏所有余额?
<label><input id="filter2" type="checkbox" checked="">Filter zero balances</label>
另外如何存储此值,以便下次加载页面时仍然会选中复选框?
在选中复选框的示例中,只显示Pound和Georgian Liari。
答案 0 :(得分:1)
我调整了你的小提琴,让你知道如何做到这一点:
filter
- 函数基本上只返回DOM - 传递的匿名函数返回true
的元素,所以在这种情况下,你只需要提供一个拟合函数,例如:
return $(this).find('td').eq(3).text() !== "0"
使用.find('td').eq(3)
我只需选择存储余额的td
- 元素,即表格行中的第四个td
(.eq
为零 - 基于索引)
在复选框上触发change
- 事件时执行的整个代码:
$('#filter2').on('change', function(){
if(this.checked){
$('.searchable tr').hide();
$('.searchable tr').filter(function() {
return $(this).find('td').eq(3).text() !== "0"
}).show();
}else{
$('.searchable tr').show();
}
});
有多种方法可以将复选框的状态保留在各个会话中,例如,可以使用Cookies或类似LocalStorage的内容。