显示来自用户输入的部分数组值

我有一堆价值的jQuery数组。

我想要一个用户能够输入一个输入,并有任何部分匹配我的数组显示在屏幕上的任何内容。

到目前为止,我已经知道何时有完整的匹配,并且可以将其打印到页面上。 但我不知道如何去部分匹配。

这是迄今为止我所拥有的JS小提琴。

这是我的代码,只是incase:

var ingredients = ["cheese", "chicken", "cherries", "chick peas", "potato"]

var input = $('#ingredient-search');
var value = input.val();    

var resultsDiv = '<div class="ingredient-search-results"><h2>Results for "<span class="results-for"></span>"</h2></div>';

var pressed = false;
var resultsFor;
var matches;


$("#ingredient-search").on("keyup", function() {

        if(pressed == false ){
            $('.append').append(resultsDiv);
        }

        pressed = true;

    resultsFor = $('.results-for');

    resultsFor.html($(this).val());

    if (jQuery.inArray(resultsFor.html(), ingredients) != -1) {
        alert(resultsFor.html() + ' is in the array!');
    } 

});

有任何想法吗?


像这样的东西应该适合你:

SUBSTRING搜索

for(var x = 0; x < ingredients.length; x++){
    if(ingredients[x].indexOf($("#ingredient-search").val()) > -1)
       $(".append").append(ingredients[x]+"<br>");
}

FIDDLE http://jsfiddle.net/BeNdErR/f5use/3/

'开始'搜索

for(var x = 0; x < ingredients.length; x++){
    if(ingredients[x].indexOf($("#ingredient-search").val()) == 0)
       $(".append").append(ingredients[x]+"<br>");
}

FIDDLE http://jsfiddle.net/BeNdErR/f5use/5/

不区分大小写的搜索

for(var x = 0; x < ingredients.length; x++){
    if(ingredients[x].indexOf(($("#ingredient-search").val()).toLowerCase()) == 0)
       $(".append").append(ingredients[x]+"<br>");
}

FIDDLE http://jsfiddle.net/BeNdErR/f5use/6/

这里是indexOf文档:indexOf()

链接地址: http://www.djcxy.com/p/74095.html

上一篇: Display partial array value matches from user input

下一篇: The right way parse html to jQuery object