如何让用户输入文本来搜索数组对象,然后输出是否有匹配?请用纯Javascript
我是javascript新手,所以请跟我说说。这个网站上的每个人对我们这些新手来说都是如此的令人惊讶,所以提前谢谢你们。所以我就在这里。。。我正在构建一个真正通用的音乐应用程序(sorta)。它不会在任何真实场景中使用,它只是为了学习和理解js。所以我被困在几个地方。我有一个数组对象的构造函数,我将相册推到数组中,然后将它们显示到一个表中,单击按钮可以以不同的方式进行组织。现在,我正试图有一个搜索框,将用户输入的文本,比较它的数组,然后当有一个匹配显示在输出文本区(或任何最好的),我似乎无法让它工作,任何帮助将不胜感激。另外,我应该有一个window.onload事件并将所有函数都初始化吗 看看我在一起的一切: 下面是我似乎无法开始工作的代码:如何让用户输入文本来搜索数组对象,然后输出是否有匹配?请用纯Javascript,javascript,html,event-handling,Javascript,Html,Event Handling,我是javascript新手,所以请跟我说说。这个网站上的每个人对我们这些新手来说都是如此的令人惊讶,所以提前谢谢你们。所以我就在这里。。。我正在构建一个真正通用的音乐应用程序(sorta)。它不会在任何真实场景中使用,它只是为了学习和理解js。所以我被困在几个地方。我有一个数组对象的构造函数,我将相册推到数组中,然后将它们显示到一个表中,单击按钮可以以不同的方式进行组织。现在,我正试图有一个搜索框,将用户输入的文本,比较它的数组,然后当有一个匹配显示在输出文本区(或任何最好的),我似乎无法让它
//function to display artist info inner HTML if in array
function displaySearchResult() {
albums.sort(compareSearch);
var output= document.getElementById("response");
var formInput = document.getElementById("formInput").innerHTML;
for (var i=0; i<album.length; i++){
if (album[i].artist == formInput) {
output = formInput + " , " + album[i].title + " " + album[i].artist;
} else {
alert("not found");
}
}
}
//用于在数组中显示艺术家信息的函数
函数displaySearchResult(){
相册。排序(比较搜索);
var输出=document.getElementById(“响应”);
var formInput=document.getElementById(“formInput”).innerHTML;
对于(var i=0;i在赋值语句中使用output.value
而不是output
。如下所示
output.value = formInput + " , " + album[i].title + " " + album[i].artist;
此外,如果您希望显示多个列表,则必须连接结果
output.value = formInput + " , " + album[i].title + " " + album[i].artist;
var output= document.getElementById("response");
var formInput = document.getElementById("formInput").innerHTML;
output.value = "";
for (var i=0; i<album.length; i++){
if (album[i].artist == formInput) {
output.value += formInput + " , " + album[i].title + " " + album[i].artist;
} else {
alert("not found");
}
}
var输出=document.getElementById(“响应”);
var formInput=document.getElementById(“formInput”).innerHTML;
产值=”;
对于(var i=0;i在赋值语句中使用output.value
而不是output
。如下所示
output.value = formInput + " , " + album[i].title + " " + album[i].artist;
此外,如果您希望显示多个列表,则必须连接结果
output.value = formInput + " , " + album[i].title + " " + album[i].artist;
var output= document.getElementById("response");
var formInput = document.getElementById("formInput").innerHTML;
output.value = "";
for (var i=0; i<album.length; i++){
if (album[i].artist == formInput) {
output.value += formInput + " , " + album[i].title + " " + album[i].artist;
} else {
alert("not found");
}
}
var输出=document.getElementById(“响应”);
var formInput=document.getElementById(“formInput”).innerHTML;
产值=”;
对于(var i=0;i相当多的问题,它应该是artists
而不是artists
,输出。值而不是output
,在html中应该是id
而不是name
对于文本区域
,你需要修剪用户输入的空格,我从循环内部删除了警报(非常烦人)。我肯定还有其他一些事情,但现在已经忘记了。我仍然看到了一些可以改进的地方,但我没有做任何事情。这是我的更新。(很有趣,很多代码似乎都很熟悉)。哦,是的,如果您实际上指的是textContent
,那么在使用innerHTML
时要小心,从输入
元素获取用户输入时要使用值
很多问题,应该是艺术家
非艺术家
,输出。值
非输出
,在html中应该是id
非名称
对于文本区
,你需要修剪用户输入的空格,我从循环内部删除了警报(非常烦人)。我肯定还有其他一些事情,但现在已经忘记了。我仍然看到了一些可以改进的地方,但我没有做任何事情。这是我的更新。(很有趣,很多代码似乎都很熟悉)。哦,是的,如果您实际上指的是textContent
,那么在使用innerHTML
时要小心,从输入
元素获取用户输入时要使用值
很抱歉,我花了几秒钟才回来。我有一个5岁的孩子……所以……无论如何。谢谢你,我一直在从你给出的令人敬畏的出发点进行修补,我意识到我可能走错了方向。我可以简单地用用户输入进行搜索,然后在表格中循环然后显示吗?还是这是一种糟糕的做法?嘿,我肯定告诉过你了上一次…你太棒了。对不起,我花了一点时间才回来。我有一个5岁的孩子..所以…无论如何。谢谢你,我一直在从你给我的很棒的出发点开始修补,我意识到我可能做得不对。我可以简单地用用户输入进行搜索,然后在表格中循环然后显示吗?或者这是一种糟糕的做法吗?嘿。公关埃蒂:我上次告诉过你了……你真了不起。