推入jquery后,数组不显示正确的值

时间:2015-02-25 15:00:58

标签: javascript jquery

在我的应用程序中,我想在验证后将一些元素推送到数组。我只是比较两个字符串,如果相同然后我将它推到一个数组。如果我在var中保存该字符串并显示其工作正常但在数组中显示错误。 如果我输入一个文本框,它将显示所有带有A的名称,对于Ab,它显示所有带有A开头的名称。

     $( 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)
    });

1 个答案:

答案 0 :(得分:0)

以下是您要尝试实现的代码,不确定您是否正在寻找不区分大小写的解决方案,但这将根据输入与数组值进行比较

    ;(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);
            }
    });     
})();