我试图在用户在2个选择框中进行选择后计算出引用值。
看起来1需要2个switch语句。这可能吗? (有比下面更多的可能值。我为了清楚起见删除了它们)
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
答案 0 :(得分:8)
如果 BREAK
,请使用 don't want to call all case
。
否则,您将获得意外结果
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;
}
答案 1 :(得分:3)
您将案例放在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;
}
}
}
答案 2 :(得分:3)
在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
(位于底部)是为了清晰起见:许多人不会包含此内容。
答案 3 :(得分:1)
不要在每个案例周围放置括号:
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;
}
}