【发布时间】:2014-09-23 08:43:38
【问题描述】:
我一直在尝试为一个学校项目制作一个非常简单的搜索引擎,但我不知道如何将我收到的用户输入(来自输入文本框的字符串)与数组中的数据进行比较(带有一堆名称的 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");
}
}
如您所见,我首先在名为“User_Input”的 var 中捕获用户输入,然后对电影标题执行相同操作。
然后,我检查用户是否在搜索表单中有任何文本;如果没有,他们会收到一条错误消息,如果有,我会运行 Search() 函数,该函数定义如下。
棘手的部分来了:我真的不知道如何将用户输入与我的输入进行比较!如您所见,我已尝试使用 If 语句,但这似乎不起作用。
谁能帮我解决这个问题?
【问题讨论】:
-
协作项目的一个小提示:请以小写字母开头的函数和变量名称,只有类应该以大写字母开头。此外,将函数命名为动词已成为普遍习惯,因为它们会做一些事情:validateInput() 将是一个很棒的名字。这不仅可以帮助其他人理解您的代码,还可以帮助您以后进行维护。
-
All_Titles 是 HTML 元素的列表。因此, operator == 不适用于字符串。请参阅下面的答案。
标签: javascript html arrays