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

时间:2017-09-04 18:26:50

标签: 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('');清除搜索框的功能。问题是,一旦运行之前隐藏的项目不再显示。表单输入重置正常,但项目仍然隐藏。

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

1 个答案:

答案 0 :(得分:1)

一旦搜索输入为空,您所要做的就是触发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();
});