我的当前代码有点问题。
我有一个textBox,我想在其中输入一个搜索框,并得到一个答案,不知何故依赖于我的问题。
只要我只在textBox中输入一个单词,它就可以正常工作,如果我的数组保存了那个单词,那么它就会被找到。
但是当我输入一个完整的问题时:你多大了?
即使我的数组中也有这个词:“old” 它不会被发现。
如何更正此行为?
function askQ(){
var searchWord = new Array("age","old","color","fun","eyes",
"legs","eye","leg");
var findme = document.getElementById('askBox').value;
if (searchWord.indexOf(findme) > -1 ) {
document.getElementById('bubble').innerHTML = "FOUND IT!";
} else {
document.getElementById('bubble').innerHTML = "SORRY!";
}
答案 0 :(得分:2)
您的代码当前检查整个输入字符串是否在数组内部。这意味着它正在检查数组中是否包含“你多大了” - 它不是。
您可能需要遍历整个数组,并将数组中的每个字符串与输入进行比较。
document.getElementById('bubble').innerHTML = "SORRY!";
for (var i = 0; i < searchWord.length; i++) {
if(findme.indexOf(searchWord[i])>-1){
document.getElementById('bubble').innerHTML = "FOUND IT!";
}
}
答案 1 :(得分:1)
你可以做的只是用空格分割findme:
words = findme.split(' ');
之后你可以添加一个for
并逐字查看你的数组。
答案 2 :(得分:1)
你应该检查数组的每个元素 尝试这样的事情:
<div id="bubble">test</div>
<br/>
<button onclick="test()">click me</button>
function test() {
var searchWord = new Array("age", "old", "color", "fun", "eyes",
"legs", "eye", "leg");
var ph = "How old are you ?";
for(var w in searchWord) {
if (ph.indexOf(searchWord[w]) > -1) {
document.getElementById('bubble').innerHTML = searchWord[w] + " - FOUND IT!";
}
}
}