我正在学习javascript而且我已经尝试了一些东西,但我无法弄清楚如何使它工作,到目前为止我的代码是:
HTML
<p>Busca tu auto:</p>
<input type="text" id="search"><span> </span><button>Submit</button>
<p class="hide h1" style="color:green">Your car is available.</p>
<p class="hide h2" style="color:red">Your car is not available.</p>
JS
$(document).ready(function(){
var cars = ['mercedes','nissan','ferrari','bmw','fiat','toyota','renault','peugeot','kia'];
$('.hide').hide();
$('button').click(function(){
if($('#search').val() == cars[x]){
$('.h1').show();
$('.h2').hide();
} else {
$('.h2').show();
$('.h1').hide();
};
});
});
我想要做的是当你点击按钮检查汽车是否可用时(它不是真的)。例如,您键入&#34; mazda&#34;并单击按钮,h2将显示,但如果您键入&#34; ferrari&#34;然后单击按钮,h1将显示。
我是否使用上面的代码接近解决方案?
注意:如果您更改&#34; x&#34;在汽车[x]中它可以运行,但只有一辆车。
答案 0 :(得分:3)
$(document).ready(function(){
var cars = ['mercedes','nissan','ferrari','bmw','fiat','toyota','renault','peugeot','kia'];
$('.hide').hide();
$('button').click(function(){
if(cars.indexOf($('#search').val()) !== -1){
$('.h1').show();
$('.h2').hide();
} else {
$('.h2').show();
$('.h1').hide();
};
});
});
答案 1 :(得分:2)
您可以使用Array.indexOf
方法搜索数组:
if (cars.indexOf($('#search').val()) !== -1) {
//your code here
}
当找不到完全匹配时,Array.indexOf
方法将返回-1
(这包括小写/大写差异),否则它将返回数组中匹配的索引。这意味着如果输入的值在您的数组中,它将返回-1
以外的值,因此if
- 语句将返回true
。
要使此不区分大小写,请使用以下命令:
if (cars.indexOf($('#search').val().toLowerCase()) !== -1) {
//available
} else {
//unavailable
}
首先将输入转换为小写,然后进行检查。为了实现这一点,存储在数组中的所有值也必须全部为小写字母,如示例所示。
答案 2 :(得分:1)
由于这个问题也被标记为jQuery:
来自jQuery docs:
jQuery.inArray( value, array [, fromIndex ] )
这将是:
$.inArray(('#search').val(), cars) !== -1
这也有在IE8
及以下工作的优势,Array.prototype.indexOf
没有。