显示来自用户输入的部分数组值
我有一堆价值的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()