jQuery匹配我在列表中键入的内容
我试图测试我键入的内容是否与字符串列表匹配,但是因为如果我键入jQuery匹配我在列表中键入的内容,jquery,Jquery,我试图测试我键入的内容是否与字符串列表匹配,但是因为如果我键入a,我使用indexOf,如果a在字符串中的任何位置,而不是第一个字母是a,我仍然会得到匹配 因此,例如,我应该能够键入au,然后只得到Audi,而不是像Yhjaukj这样的例子 这是我当前的代码,它从一个选择框选项中创建一个字符串列表,然后在我在editablespan中键入时搜索这些选项 var $makes = []; $('#make option').each(function() { if ($(this).
a
,我使用indexOf,如果a
在字符串中的任何位置,而不是第一个字母是a
,我仍然会得到匹配
因此,例如,我应该能够键入au
,然后只得到Audi
,而不是像Yhjaukj
这样的例子
这是我当前的代码,它从一个选择框选项中创建一个字符串列表,然后在我在editablespan中键入时搜索这些选项
var $makes = [];
$('#make option').each(function() {
if ($(this).val() !== '')
$makes.push({id: $(this).val(), value: ($(this).text()).replace(/\((.*)\)/, '')});
});
console.log($makes);
$('#marv_search_make span.value').on('blur keyup paste', function() {
var $val = ($(this).html()).toUpperCase();
var $result;
for(var i=0; i<$makes.length;i++) {
if (~($makes[i].value).indexOf($val))
$result = $makes[i].value;
}
$('#marv_search_make i.hint').html($result);
}).html($makes[0].value);
var$makes=[];
$('#make option')。每个(函数(){
如果($(this.val()!='')
$makes.push({id:$(this.val(),value:($(this.text()).replace(/\(.*)\)/,'');
});
console.log($makes);
$('marv#u search_make span.value')。在('blur keyup paste',function()上{
var$val=($(this.html()).toUpperCase();
var$结果;
对于(var i=0;i您所要做的就是对照数组中的每个条目检查span的值,并查看它是否以该值开头。如果是,则indexOf()
应返回0
for(var i=0; i<$makes.length;i++) {
if (($makes[i].value).indexOf($val) == 0){
$result = $makes[i].value;
return false;
}
}
for(var i=0;ior使用regex。如果您将if语句更改为if($make[i].value.indexOf($val)==0)
它应该按照您想要的方式工作。谢谢大家,@PriyeshKumar的建议非常有效。
for(var i=0; i<$makes.length;i++) {
if (($makes[i].value).match("^"+$val)){
$result = $makes[i].value;
return false;
}
}