javascript - 如何再次显示之前被 jQuery 隐藏的所有列表项?

标签 javascript jquery

我有一个搜索框,可以过滤结果并在与过滤器不匹配时隐藏它们:

$('#box_street').keyup(function() {
                  var valThis = $(this).val().toLowerCase();
                  if (valThis == "") {
                    $('#street__list > .list__item').show();
                  } else {
                    $('#street__list > .list__item').each(function() {
                      var text = ($(this).text() + $(this).data("alt")).toLowerCase();
                      if (text.indexOf(valThis) >= 0) {
                        $(this).show()
                      } else {
                        $(this).hide();
                      }
                    });
                  };
                });

现在,我添加了一个使用 $('.search__filter').val(''); 清除搜索框的函数; 问题是,一旦运行了之前隐藏的项目,不再显示。表单输入重置正常,但项目仍然隐藏。

我怎样才能再次显示它们?

最佳答案

一旦搜索输入为空,您所要做的就是触发 keyup 事件,因为您已经有了显示所有元素的条件

$('#reset_button').on('click', function() {
    $('.search__filter').val('');
    // reset form ... then
    $('#box_street').trigger('keyup');
    // or you could do it yourself directly with : 
    // $('#street__list > .list__item').show();
});

关于javascript - 如何再次显示之前被 jQuery 隐藏的所有列表项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46042420/

相关文章:

javascript - 在 Jasmine 中对 Angular 进行单元测试时模拟自定义提供程序注入(inject)提供程序

javascript - 如何在jquery中的特定时间后自动使项目slideUp

javascript - 为什么这个 ExtJS 代码得到错误 "this.el is null"?

javascript - 在textarea中获取选中的文本

javascript - Jquery Blur() 对输入和 div 的效果

jquery - 如何在文档加载时立即进行 AJAX 调用

javascript - 在不覆盖用户游戏进度的情况下合并javascript中的两个对象

javascript - 如何使用字符串变量访问对象属性?

javascript - 我如何结合 html、css 和 javascript 编码来使我的轮播工作?

javascript - 向初次访问网站的访客显示有用提示的最佳方式 RoR/Jquery