我试图在文本框(html5)中输入名称,在数组(javascript)中搜索值,并从文本框中返回值(如果它在数组中)。
基本上我需要-- if search == arrayelement[i] display [i] else...有关从哪里开始的任何指导?
最佳答案
你的问题有点令人困惑,但我猜你有一个名称数组,并且有一个搜索输入字段,你想要搜索该数组,然后搜索结果(可能是一个 div?)。
var names = ["john", "bob", "kayla", "sam", "elena", "josh", "andrew", "maria"];
function search(){
var searchFor = $("#search-input").val();
var searchIndex = names.indexOf(searchFor);
if(searchIndex == -1)
$("#search-results").html("no results");
else
$("#search-results").html(searchFor);
}
$("#search-input").on("keyup", search);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='search' id='search-input' />
<div id='search-results'></div>
如果您想让每个条目都有自己的 url 并允许部分搜索,请尝试这样的操作:
var people = [
{
name: "John Smith",
url: "http://example.com/johnsmith"
},
{
name: "John Johnson",
url: "http://example.com/johnjohnson"
},
{
name: "Bob Thompson",
url: "http://example.com/bobthompson"
},
{
name: "Smith Sanchez",
url: "http://example.com/smithsanchez"
},
{
name: "Bob Sanchez",
url: "http://example.com/bobsanchez"
}
];
$("#search-input").on("keyup", function(){
var searchFor = $("#search-input").val().toLowerCase();
var results = [];
for(var i=0;i<people.length;i++){
if(people[i].name.toLowerCase().indexOf(searchFor) > -1)
results.push("<a href='"+people[i].url+"' target='_blank'>"+people[i].name+"</a>")
}
if(results.length == 0)
$("#search-results").html("No Results Found");
else
$("#search-results").html(results.join("<br>"));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='search' id='search-input' placeholder='Search' />
<div id='search-results'></div>
关于Javascript HTML5 数组搜索并从 HTML5 文本框返回(如果在数组中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35554108/