从属自动完成下拉菜单,当在输入中键入文本时,它仅由首字母自动完成,以使其与任何字母一起工作,例如,如果我键入- “哟”它应该在下拉菜单中显示“纽约”。这是我的代码,但只显示首字母。
var states = {
'Color': ['red', 'black', 'yellow', 'green', ],
'Numbers': ['one', 'two', 'three', 'four']
};
function match(str) {
str = str.toLowerCase();
clearDialog();
for (var i = 0; i < states.color.length; i++) {
if (states.color[i].toLowerCase().startsWith(str)) {
jQuery('.dialog').append('<div>' + states.color[i] + '</div>');
}}}
答案 0 :(得分:1)
您是否尝试过将.startsWith(str)切换为.includes(str)?
更具体地说:
if (states.color[i].toLowerCase().includes(str)) {
jQuery('.dialog').append('<div>' + states.color[i] + '</div>');
}
答案 1 :(得分:1)
使用indexOf
:
if (states.color[i].toLowerCase().indexOf(str) !== -1) {
jQuery('.dialog').append('<div>' + states.color[i] + '</div>');
}
或者使用includes
更新的方法:
if (states.color[i].toLowerCase().includes(str)) {
jQuery('.dialog').append('<div>' + states.color[i] + '</div>');
}