我有一个搜索框可以过滤结果并隐藏它们,如果它们与过滤器不匹配:
$('#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('');
清除搜索框的功能。问题是,一旦运行之前隐藏的项目不再显示。表单输入重置正常,但项目仍然隐藏。
我怎样才能再次展示它们?
答案 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();
});