Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让用户输入文本来搜索数组对象,然后输出是否有匹配?请用纯Javascript_Javascript_Html_Event Handling - Fatal编程技术网

如何让用户输入文本来搜索数组对象,然后输出是否有匹配?请用纯Javascript

如何让用户输入文本来搜索数组对象,然后输出是否有匹配?请用纯Javascript,javascript,html,event-handling,Javascript,Html,Event Handling,我是javascript新手,所以请跟我说说。这个网站上的每个人对我们这些新手来说都是如此的令人惊讶,所以提前谢谢你们。所以我就在这里。。。我正在构建一个真正通用的音乐应用程序(sorta)。它不会在任何真实场景中使用,它只是为了学习和理解js。所以我被困在几个地方。我有一个数组对象的构造函数,我将相册推到数组中,然后将它们显示到一个表中,单击按钮可以以不同的方式进行组织。现在,我正试图有一个搜索框,将用户输入的文本,比较它的数组,然后当有一个匹配显示在输出文本区(或任何最好的),我似乎无法让它

我是javascript新手,所以请跟我说说。这个网站上的每个人对我们这些新手来说都是如此的令人惊讶,所以提前谢谢你们。所以我就在这里。。。我正在构建一个真正通用的音乐应用程序(sorta)。它不会在任何真实场景中使用,它只是为了学习和理解js。所以我被困在几个地方。我有一个数组对象的构造函数,我将相册推到数组中,然后将它们显示到一个表中,单击按钮可以以不同的方式进行组织。现在,我正试图有一个搜索框,将用户输入的文本,比较它的数组,然后当有一个匹配显示在输出文本区(或任何最好的),我似乎无法让它工作,任何帮助将不胜感激。另外,我应该有一个window.onload事件并将所有函数都初始化吗

看看我在一起的一切:

下面是我似乎无法开始工作的代码:

    //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岁的孩子..所以…无论如何。谢谢你,我一直在从你给我的很棒的出发点开始修补,我意识到我可能做得不对。我可以简单地用用户输入进行搜索,然后在表格中循环然后显示吗?或者这是一种糟糕的做法吗?嘿。公关埃蒂:我上次告诉过你了……你真了不起。