PRESENT: 什么有效我在一个应用程序中有一个搜索页面,该页面主要具有语音界面,并且还具有文本输入搜索选项(用于搜索图像)。我首先制定了语音命令并拥有所有图像,并且工作正常,现在我正在添加文本配置。下面是现在有效的示例,我仅使用一个单词作为变量对其进行了测试:
.HTML
<div id="searchBoxPage"class="videoContainer">
<form>
<input type="text" name="search" placeholder="Search">
</form>
<img id="button1960s_002" class="hiddenElement" src="animsAll/Anims_002_Button_1960s.gif">
<video autoplay loop muted>
<source src="videos/music_saint_etienne_only_love_cropped_370x660.mp4" type="video/mp4">
Your browser does not support the video tag.
</video></div>
简讯
$( "input" )
.keyup(function() {
var value = $( this ).val();
var sixties = "sixties";
if (value === sixties) {
$("#button1960s_002").show().delay(10000).fadeOut();
}
})
问题:添加一个单词的多个变体并检查用户输入是否与其中任何一个匹配 现在我正在使用文本部分,刚刚意识到与语音不同,它必须与一个字符串或字符串组合匹配(根据 API 规范),文本可以有多个选项对于一个单词,因为人们有时会拼错单词. 我使用了上面的代码,它完美地向我展示了一个特定的图像,但现在我想为同一个单词添加几个选项,以及可能的单词组合。
在这种情况下,这个词是"六十年代"。 我创建了单个变量
var sixties = "sixties";
这奏效了。但是现在我想在下面添加这两个附加选项:
var sixties =["sixty", "sixtys", "sixties"];
这不适用于我拥有的其他代码。将这些单词添加到数组 (?) 中的最佳方法是什么,如果其中任何一个匹配,则显示图像?我知道我错过了"检查这些单词之间是否有匹配"选项,但我无法弄清楚如何更改我已经拥有的内容。
如果值在六十年代数组中,这将返回 true:
if (value.indexOf(sixties) > -1)) {
$("#button1960s_002").show().delay(10000).fadeOut();
}
由于您使用的是jQuery,因此您可以使用$.inArray进行检查 http://api.jquery.com/jQuery.inArray/
var sixties =["sixty", "sixtys", "sixties"];
if($.inArray(value, sixties) !== false) {
$("#button1960s_002").show().delay(10000).fadeOut();
}