这是我在stackOverflow中的第一篇文章(请别成为怪物,呵呵)。我正在寻找有关搜索栏功能的建议或技巧。我已经使用过:
for (i = 0; i < taskButton.length; i++) {
//if there is a match
if (tasks[i].toUpperCase().indexOf(filter) > -1) {
//display the match
taskButton[i].style.display = "";
} else {
//hide the mismatch
taskButton[i].style.display = "none";
}
}
但是对于indexOf,字符串中是否有空格字符,例如,它将显示所有带有空格的字符串。考虑到每个字母的顺序,我想改进此搜索功能。谢谢大家!
使用startsWith
代替indexOf
:
for (let i = 0; i < taskButton.length; i++) {
taskButton[i].style.display = tasks[i].toUpperCase().startsWith(filter)
? ''
: 'none';
}
如上所述,您可以使用条件运算符使代码更简洁,并确保声明i
变量-如果不声明变量,则将隐式分配给全局对象(是混乱的),或,如果您处于严格模式,将引发错误。