我一直在尝试为学校项目制作一个非常简单的搜索引擎,但我不知道如何将收到的用户输入(来自输入文本框的字符串)与数组中的数据(NodeList具有一堆名称的对象)。
我将详细说明我想要实现的目标:我有一个 HTML 页面,其中包含一个输入表单和一堆电影标题(格式),我想将用户在输入表单中键入的内容与电影进行比较页面上的标题。如果用户输入与其中一个电影标题匹配,我希望突出显示该电影,如果输入与任何电影不匹配,我只想弹出一个警告框,提示输入与任何电影都不匹配。
我一直在尝试这样做:
var All_Titles = document.getElementsByTagName("h3");
var User_Input = document.forms["search_form"];
function InputValidation() {
var x = document.forms["search_form"]["input_box"].value;
if (x == "" || x == null) {
alert("You haven't entered anything");
} else {
Search();
}
}
function Search() {
if (User_Input == All_Titles) {
document.writeln("It worked!");
} else {
alert("No matched movies");
}
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我首先在名为“User_Input”的变量中捕获用户输入,并对电影标题执行相同的操作。
然后,我检查用户是否确实在搜索表单中输入了任何文本;如果他们没有这样做,他们会收到一条错误消息,如果他们这样做了,我将运行 Search() 函数,该函数的定义如下。
棘手的部分来了:我真的不知道如何将用户输入与我拥有的 进行比较!我已经用 If 语句进行了尝试,如您所见,但这似乎不起作用。
谁能帮助我解决这个问题?
我是jQuery的新手,我有以下问题:
我制作了一个JS脚本,将用户输入与一组<h3>代表电影片头的元素进行比较.
userinput = userinput.toLowerCase();
var list = document.getElementsByTagName("h3"); //dit wordt de lijst met titels
var i = list.length,
html, flag = false,
matches = [];
while (i--)//here, we loop through the list of <h3>'s
{
var html = list[i].innerHTML.toLowerCase();
if (-1 < html.indexOf(userinput))
{
flag = true;
matches.push(list[i]);
list[i].className = "matched";
}
}
if (!flag)//no match
{if (-1 !== html.indexOf(userinput))
alert('No match found !');
}
else//match!
{
for (var i = 0; i < matches.length; i++)
{ …Run Code Online (Sandbox Code Playgroud)