我试图在用户在 2 个选择框中进行选择后计算出报价值。
看起来 1 需要 2 个开关语句。这可能吗?(可能的值比下面的值多得多。为了清楚起见,我删除了它们)
var workOutQuote = function() {
var value1 = $("#delivery_from_area").val();
var value2 = $("#delivery_to_area").val();
var val = '';
switch (value1)
{ case '1':
{ switch (value2)
{ case '1': val="90"; break; }
{ case '2': val="80"; break; }
{ case '3': val="70"; break; }
}
}
{ case '2':
{ switch (value2)
{ case '1': val="80"; break; }
{ case '2': val="90"; break; }
{ case '3': val="70"; break; }
}
}
}
使用上面的代码,我得到错误:
Uncaught SyntaxError: Unexpected token case
如果您don't want to call all case
,请使用 BREAK
。否则,你会得到意想不到的结果
var workOutQuote = function() {
var value1 = $("#delivery_from_area").val();
var value2 = $("#delivery_to_area").val();
var val = '';
switch (value1){
case '1':
switch (value2){
case '1': val="90"; break;
case '2': val="80"; break;
case '3': val="70"; break;
}
break;
case '2':
switch (value2){
case '1': val="80"; break;
case '2': val="90"; break;
case '3': val="70"; break;
}
break;
}
你把大小写放在braces
,你的代码{ case '1': val="90"; break; }
var value1 = '2';
var value2 = '2';
var val = '';
switch (value1) {
case '1':
{
switch (value2) {
case '1':
val = "90";
break;
case '2':
val = "80";
break;
case '3':
val = "70";
break;
}
}
case '2':
{
switch (value2) {
case '1':
val = "80";
break;
case '2':
val = "90";
break;
case '3':
val = "70";
break;
}
}
}
演示
过度使用大括号会导致switch ()
(javascript 语法要求你包含)之后的语句提前结束。调整到这一点:
switch (value1){
case '1':
switch (value2){
case '1': val="90"; break;
case '2': val="80"; break;
case '3': val="70"; break;
}
break;
case '2':
switch (value2){
case '1': val="80"; break;
case '2': val="90"; break;
case '3': val="70"; break;
}
break;
}
我也冒昧地在你的外部案例之间放了一个break;
,因为目前你的第一个案例遇到了下一个案例。
我添加的最后一break
(就在底部)是为了清楚起见:许多人不会包括这个。
不要在每个案例两边加上括号:
switch (value1)
{ case '1':
{ switch (value2)
{ case '1': val="90"; break; }
{ case '2': val="80"; break; }
应该是 :
switch (value1)
{ case '1':
switch (value2) {
case '1': val="90"; break;
case '2': val="80"; break;
}
}