我编写了搜索州标题的函数,一切都很完美,但是当我在搜索栏中输入字母时,过滤器会查找单词中的所有字母。我想从开头的单词开始过滤搜索。
示例
如果我输入过滤器结果将是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/