javascript - 简单的页面过滤功能

标签 javascript function

我编写了搜索州标题的函数,一切都很完美,但是当我在搜索栏中输入字母时,过滤器会查找单词中的所有字母。我想从开头的单词开始过滤搜索。

示例

如果我输入过滤器结果将是c'an'ada,他会找到一个并且可以,但我只想从头开始检查

function filterNames() {
    let filterValue = document.getElementById('filterInput').value.toUpperCase();
    let kartice = allContinet;
    let h2 = document.querySelectorAll('h2');

    for (let i=0;i<h2.length;i++) {
        let name = h2[i].getElementsByClassName("ime-zemlje");

        if (name[0].innerHTML.toUpperCase().indexOf(filterValue) > -1) {
            kartice[i].style.display = '';
        } else {
            kartice[i].style.display = 'none';
        }

    }
}

最佳答案

您可以使用String.search方法。

所以你的if条件将变成

if(name[0].innerHTML.toUpperCase().search(new RegExp(`^${filterVal}`)) === 0)

搜索也具有良好的浏览器支持

关于javascript - 简单的页面过滤功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57054668/

相关文章:

javascript - 通过 onclick 事件将 json 编码的多维数组传递给 javascript

javascript - 递归新 Promise : RangeError: Maximum call stack size exceeded

javascript - 用于突出显示功能的更高效的 JavaScript 代码?

c - 相同的代码在 main 中有效,但在从 C 中的函数调用时无效

javascript - 编写类并实现功能

javascript - jq网格。动画隐藏/显示列

javascript - 无法克隆 <template> 以附加到 <div>

javascript - 将函数设置为匿名的区别

javascript - 函数构造函数与 eval

javascript - 函数调用困惑的事件处理