我在点击输入标签时创建了一个列表。现在我想在输入标签时过滤数据并且发生了这种情况,但是在选择一个数据之后,过滤不会从第二个数据开始发生。
我的过滤器代码。
function filterList(value, list) {
var li, i, match;
for (i = list.children.length; i--;) {
li = list.children[i];
match = li.textContent.toLowerCase().indexOf(value.toLowerCase()) > -1;
li.classList.toggle('hidden', !match)
}
}
以下是我面临的几个问题。谁能帮我解决这个问题。我创建了一个可以正常工作的 fiddle 手,您可以看到问题.. Fiddle
- 从第二个数据开始不会进行过滤。
- 一旦从键中放置一些数据,然后从列表中选择一些值,两个值都会出现。
最佳答案
你在引号之间添加了一个空格
li[i].style.display = "";
所以只需删除该空间即可正常工作
li[i].style.display = "";
因为您计划在输入字段中添加选定字段
(这有点像你在 stackoverflow 中添加标签的方式
或其他一些网站)
关于javascript - 过滤器没有发生在 html 列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44757815/