隐藏/显示div作用于键盘过滤器输入

时间:2015-03-26 14:18:28

标签: javascript jquery html

我有一个与过滤器一起使用的脚本,用于在表格中显示tr的当前视图。非常简单......当您输入过滤器时,表格会根据该查询进行更新并返回相应的金额:显示25个搜索结果:________(数字更改)。然后我在该声明的末尾包含一个div,它只反映了放入过滤器的文本:显示25个搜索结果:_______ 和过滤" blah" 。我希望能够在从过滤器中删除过滤器文本时隐藏该div ...过滤器已停用。截至目前,它将清除实际文本 blah ,但保留div的其余部分和Filter" " 即可。

为什么会这样?它应该由" keyup"激活/停用。过滤器,对吗?我已经尝试创建一个单独的函数并添加一个if else语句...没有骰子。我还尝试了jQuery的hide()和show()方法,就像$('tbody.searchable').hide();一样没有运气。我希望它保持在同一个" keyup"功能。

$(document).ready(function(){
    (function($) {
        $('#filter').keyup(function() {
            var rex = new RegExp($(this).val(), 'i');
            $('tbody.searchable').hide();
            $('tbody.searchable').filter(function() {
                return rex.test($(this).text());
            }).show();

            var x = $('tbody.searchable:visible').length; 
            document.getElementById("filterUpdate").innerHTML = x;

          //NEED TO HIDE THIS AFTER TEXT IN THE FILTER IS BACKSPACED (FILTER IS DEACTIVATED)
            $('#filterText').html('and Filter = "' + $('#filter').val()+'"');

        })

        $('tbody').on("click", function() {
            if($(this).data('href') !== undefined){
                document.location = $(this).data('href');
            }
        });
    }(jQuery));
});

1 个答案:

答案 0 :(得分:0)

您只需要检查输入值是否为空:

$('#filterText').html($(this).val() ? 'and Filter = "' + $('#filter').val()+'"' : '');

JSFiddle