javascript - 带复选框的 Bootstrap 表过滤器

标签 javascript twitter-bootstrap

我调整了以下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>

另外,如何存储此值,以便下次加载页面时,复选框仍处于选中状态?

在示例中,当选中该复选框时,仅应显示英镑和格鲁吉亚 Liari。

最佳答案

我调整了你的 fiddle ,让你了解如何做到这一点:

updated Fiddle

filter - 函数的基本作用是仅返回 DOM - 元素,其中传递的匿名函数返回 true,因此在这种情况下,您只需提供拟合函数,例如:

返回 $(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();
    }            

});

有多种方法可以在不同的 session 中保持复选框的状态,您可以使用 Cookies或类似LocalStorage例如。

关于javascript - 带复选框的 Bootstrap 表过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26102279/

相关文章:

php - 在 Symfony2 的产品中使用 assetic 时找不到 Twitter Bootstrap glyphicons 字体

javascript - 对 Angular 线背景 html 和 css

javascript - 如何在 Angular 中使用 HttpClient 从 Assets 中下载文件?

javascript - 如果 DOM 的滚动位置大于 xyz,则显示元素

html - 使用 Bootstrap 创建居中表格

html - Bootstrap 元素下的文本

css - 用 Bootstrap 填充剩余高度

javascript - Protractor 中的 promise 回调排序

javascript - Cesiumjs 缩放到鼠标

javascript - 检查时间是否在javascript中的小时和分钟两个值之间