我有一个搜索框,可以过滤结果并在与过滤器不匹配时隐藏它们:
$('#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/