[在我的HTML中,我创建了一个具有两个属性的表单-item name
和item price
,以及一个按钮,该按钮的onclick()
事件将调用javascript函数temp()
。以下是我所附的javascript代码:
function temp(){
var a = 2
var b = 4;
var f = [a,b];
for(var i = 0; i <= f.length-1;i++)
{
switch(f[i])
{
case f[0]:
if (f[0] == 2) {
alert("hell");
}
break;
case f[1]:
if (f[1] == 4) {
alert("hello");
}
break;
}
}
这在我单击一个按钮时分别正确显示两个警报消息-“ hell”和“ hello”。问题与下面的代码:
function temp() {
var a = document.form1.item_name.value;
var b = document.form1.price.value;
var f = [a,b];
for(var i = 0; i <= f.length-1;i++)
{
switch(f[i])
{
case f[0]:
if (f[0] == "") {
alert("hell");
}
break;
case f[1]:
if (f[1] == "") {
alert("hello");
}
break;
}
}
}
此代码两次提醒“地狱”,但如何?
The reason is that your first switch case of f[0] is always going to be satisfied and alert 'hell'
this works as anticipated:
switch(i)
{
case 0:
if (f[0] == "") {
alert("hell");
}
break;
case 1:
if (f[1] == "") {
alert("hello");
}
break;
}
}
您的开关盒的工作方式如下:-
switch("")
{
case ""
Alert hell
break
case ""
Alert hello
break
}
所以您的第一个案例总是很满意。也不要混淆开关,如果一起使用,请使用两者之一。