Javascript 数组在推入jquery后未显示正确的值
在我的应用程序中,我想在验证后将一些元素推送到数组中。我只是比较两个字符串,如果它相同,那么我将把它推到一个数组中。若我将该字符串保存在var中并显示其工作状态,但在数组中显示错误。 如果我在文本框中键入a,它将显示所有以a开头的名称,对于Ab,它将显示所有以a开头的名称Javascript 数组在推入jquery后未显示正确的值,javascript,jquery,Javascript,Jquery,在我的应用程序中,我想在验证后将一些元素推送到数组中。我只是比较两个字符串,如果它相同,那么我将把它推到一个数组中。若我将该字符串保存在var中并显示其工作状态,但在数组中显示错误。 如果我在文本框中键入a,它将显示所有以a开头的名称,对于Ab,它将显示所有以a开头的名称 $( document ).ready(function() { var vendornames =["Abac","Abrs","aspc","Asrp","betd","gtser","gdrt"]
$( document ).ready(function() {
var vendornames =["Abac","Abrs","aspc","Asrp","betd","gtser","gdrt"]
var list = new Array();
$('#vendor-name').keyup(function(event){
var $textValue = $(this).val();
if ($textValue.length > 0) {
jQuery.each(vendornames, function (i, val) {
if (val.indexOf($textValue) === 0) {
list.push(val);
}
});
}
alert(list)
});
下面是一段代码,用于说明您试图实现的目标,不确定您是否在寻找不区分大小写的解决方案,但这将根据输入与数组值进行比较
;(function() {
var vendornames =["Abac","Abrs","aspc","Asrp","betd","gtser","gdrt"],
list = [],
targetEle = "#vendor-name";
$(targetEle).on("keyup", function(event){
var $textValue = $(this).val();
if($textValue.length >= 3){
$.map( vendornames, function( n ) {
return n == $textValue ? list.push(n) : null;
});
console.clear();
console.table(list);
}
});
})();
您应该阅读我在最新文章中的回答,数组是在回调函数中初始化的,而不是作用域的全局。您必须在回调开始时重置数组
list
,如list=[]代码>在进行var$textValue=…
编码风格评论之前;要么在任何地方使用分号,要么不要。。。混合样式会分散阅读注意力。还需要使用相同的大小写比较两者,将两个值转换为小写或大写,因为a
不匹配a