Javascript 下拉自动完成

Javascript 下拉自动完成,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,Dependent autocomplete下拉列表,当在输入中键入文本时,它仅通过第一个字母自动完成如何使其与任何字母一起工作,如果我键入- “哟”应该在下拉列表中显示“纽约”。这是我的代码,但它只显示第一个字母 var states = { 'Color': ['red', 'black', 'yellow', 'green', ], 'Numbers': ['one', 'two', 'three', 'four'] }; function match(str) { s

Dependent autocomplete下拉列表,当在输入中键入文本时,它仅通过第一个字母自动完成如何使其与任何字母一起工作,如果我键入- “哟”应该在下拉列表中显示“纽约”。这是我的代码,但它只显示第一个字母

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>');

}}}
var状态={
“颜色”:[“红色”、“黑色”、“黄色”、“绿色”和],
‘数字’:[‘一’、‘二’、‘三’、‘四’]
};
功能匹配(str){
str=str.toLowerCase();
clearDialog();
对于(var i=0;i
您是否尝试过将.startsWith(str)切换到.includes(str)

更具体地说:

if (states.color[i].toLowerCase().includes(str)) {
    jQuery('.dialog').append('<div>' + states.color[i] + '</div>');
}
if(states.color[i].toLowerCase().includes(str)){
jQuery('.dialog').append(''+states.color[i]+'');
}

您是否尝试过将.startsWith(str)切换到.includes(str)

更具体地说:

if (states.color[i].toLowerCase().includes(str)) {
    jQuery('.dialog').append('<div>' + states.color[i] + '</div>');
}
if(states.color[i].toLowerCase().includes(str)){
jQuery('.dialog').append(''+states.color[i]+'');
}

使用
索引

if (states.color[i].toLowerCase().indexOf(str) !== -1) {
    jQuery('.dialog').append('<div>' + states.color[i] + '</div>');
}

使用
indexOf

if (states.color[i].toLowerCase().indexOf(str) !== -1) {
    jQuery('.dialog').append('<div>' + states.color[i] + '</div>');
}

String.indexOf()
String.indexOf()
非常感谢!如何使dropdwon中的匹配字母突出显示或加粗?针对您的新问题提出新问题。但是我想类似于
.replace
和reqular表达式的东西应该可以工作。非常感谢!如何使dropdwon中的匹配字母突出显示或加粗?针对您的新问题提出新问题。但我认为类似于
.replace
和reqular表达式的东西应该可以工作。