提问人:eror programs 提问时间:11/12/2023 更新时间:11/12/2023 访问量:43
如何在搜索时显示相关结果
How to show relevant results when searching
问:
我有一个包含输入和数组的项目。当我在输入中搜索某些内容时,我希望它根据常用字符向我显示数组中的相关结果
这是我的代码:
<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()
}
}
});
顺便说一句,代码可以工作,但在我输入整个单词之前,它不会向我显示结果
答:
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
谢谢,你的解决方案是正确的,我会选择你作为最佳答案,谢谢
评论