javascript - 过滤器没有发生在 html 列表中

标签 javascript html css

我在点击输入标签时创建了一个列表。现在我想在输入标签时过滤数据并且发生了这种情况,但是在选择一个数据之后,过滤不会从第二个数据开始发生。

我的过滤器代码。

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

  1. 从第二个数据开始不会进行过滤。
  2. 一旦从键中放置一些数据,然后从列表中选择一些值,两个值都会出现。

最佳答案

你在引号之间添加了一个空格

li[i].style.display = "";

所以只需删除该空间即可正常工作

li[i].style.display = "";

因为您计划在输入字段中添加选定字段
(这有点像你在 stackoverflow 中添加标签的方式 或其他一些网站)

你可以找到类似的答案here
并在那里阅读评论,因为有人提到链接到 GitHub 的库

关于javascript - 过滤器没有发生在 html 列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44757815/

相关文章:

javascript - 页面加载后如何获取滚动位置?

javascript - AngularJS ng- Controller 不工作

javascript - 如何将一些文本动画化到圆形 div 中的随机位置

html - 伪元素上的 Font Awesome 5 显示正方形而不是图标

javascript - 在 IE 上带有滚动条渲染问题的 Handsontable 固定标题

javascript - 在 webkit 浏览器中对数组进行排序的问题

html - Open Graph + Twitter Cards + HTML5 = 不兼容?

javascript - 用 HTML/CSS 或 Javascript 制作井字棋盘

javascript - ng-repeat 表中的 AngularJS 自定义过滤器

html - 更改事件输入选择器的背景颜色