javascript - 尝试过滤数组但未获得所需的输出
问题描述
我有一个 filtertask 输入,所以每当用户输入内容时,它应该只显示与输入的任务匹配的任务
过滤工作正常,但在我删除输入的文本后,任务列表不再出现
这里 list-item 是 li 元素的类
如果任务列表中有“singh”和“sharma”,我输入“m”进行过滤,它会显示“sharma”。但是当我清除 filtertask 输入时,只显示 'sharma' 而不是 'singh' 和 'sharma'
filter.addEventListener('keyup', filTask);
function filTask(e) {
const text = e.target.value.toLowerCase();
if (text !== '') {
document.querySelectorAll('.list-item').forEach(function(task) {
const item = task.firstChild.textContent;
if (item.toLowerCase().indexOf(text) != -1) {
task.style.display = 'block';
} else {
task.style.display = 'none';
}
});
}
}
解决方案
你只需要else
这里的一部分,
if (text !== '') {
document.querySelectorAll('.list-item').forEach(function(task) {
const item = task.firstChild.textContent;
if (item.toLowerCase().indexOf(text) != -1) {
task.style.display = 'block';
} else {
task.style.display = 'none';
}
});
} else {
document.querySelectorAll('.list-item').forEach(function(task) {
task.style.display = 'block';
});
}
推荐阅读
- typescript - 无法使用打字稿在接口属性中设置多种类型
- angular - ngx-translate 选择器中的动态形式
- php - 使用 add_rewrite_tag() 在 wordpress 中传递变量
- flutter - 为什么有时小吃店会失败
- angular - Swal Fire Input 从数组中选择
- vue.js - 如何使用 importScripts 将 localforage 导入到 service worker?
- java - BreakIterator 找不到带括号的“ie”或“eg”的正确句子边界
- math - 用于评估数学表达式的递归下降解析器引发错误,我不知道如何修复它
- ionic-framework - 检查链接后如何等待页面转换?
- authentication - 禁用 ngrok 身份验证