4

我有一个带有一堆值的 jQuery 数组。

我希望用户能够输入输入,并在屏幕上显示我的数组中的任何内容的任何部分匹配项。

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

这是迄今为止我所拥有的 JS Fiddle

这是我的代码以防万一:

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

});

有任何想法吗?

4

1 回答 1

4

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

子串搜索

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

小提琴 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>");
}

小提琴 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>");
}

小提琴 http://jsfiddle.net/BeNdErR/f5use/6/

这是indexOf文档:indexOf()

于 2013-11-12T15:35:08.530 回答