如何在搜索时显示相关结果

How to show relevant results when searching

提问人:eror programs 提问时间:11/12/2023 更新时间:11/12/2023 访问量:43

问:

我有一个包含输入和数组的项目。当我在输入中搜索某些内容时,我希望它根据常用字符向我显示数组中的相关结果

这是我的代码:

<input type="text" />
<div></div> 
$(document).on("keyup keypress","input",function()
{
  let input = $(this)
  
  let array = ["tide","taet","oks","mos"]  
  
  storage = ""
  
  for( let x = 0; x < array.length; x++ )
    { 
      if( input.val() === array[x] )
        {
          storage = array[x] // I will use the stored text later
          
           $("div").append(`<p>this is : ${array[x]}</p>`)
          
          return
        }
      
        if( input.val() !== array[x] )
        {
           $("div").empty()
        }
    }
});

顺便说一句,代码可以工作,但在我输入整个单词之前,它不会向我显示结果

JavaScript HTML jQuery 数组

评论


答:

1赞 katsucurry 11/12/2023 #1

这是因为 if 条件正在尝试将输入与整个数组字符串匹配。因此,只有在键入数组中的整个字符串值后,它才会起作用。

if( input.val() === array[x] )

请尝试检查输入中的字符串是否包含在数组值中。

if( array[x].includes( input.val() ) )

评论

0赞 eror programs 11/12/2023
太好了,它有效。你能给我includes()代码的来源吗?但是,如果未提供前一个条件,我该如何实现第二个条件呢?
0赞 eror programs 11/12/2023
因为第一个条件是:如果数组中的内容与输入中写入的内容匹配,则向我显示 p 中的结果,但如果输入中写入的结果与数组中的元素不匹配,则从 div 中删除内容,那么第二个条件将如何为我工作?因为我尝试了几个想法,但没有奏效
1赞 katsucurry 11/12/2023
@erorprograms 您可以一起删除第二个 if 语句,而是在 for 循环之前拥有 right。这样,在每次更改时,您都会清空 div,然后只有在找到某些内容时才会附加 div。$("div").empty()
1赞 eror programs 11/12/2023
是的,是的,是的,我明白这个问题。问题可以在我放置的退货中找到。如果我删除它,那么所有问题都会消失。我忘记了它,因为存在第二个条件函数,这导致了我的问题和错误。我现在明白了。编程的世界非常有趣。可能会出现一个简单的错误。它扭曲了整个项目的进程哈哈
1赞 eror programs 11/12/2023
谢谢,你的解决方案是正确的,我会选择你作为最佳答案,谢谢