Wer*_*eta 25 javascript jquery switch-statement
我在javascript中做一个switch语句:
switch($tp_type){
case 'ITP':
$('#indv_tp_id').val(data);
break;
case 'CRP'||'COO'||'FOU':
$('#jurd_tp_id').val(data);
break;
}
Run Code Online (Sandbox Code Playgroud)
但我认为如果我使用OR运算符它不起作用.如何在javascript中正确执行此操作?如果我选择ITP,我会得到ITP.但如果我选择COO,FOU或CRP我总是得到第一个CRP.请帮忙,谢谢!
Mat*_*Mat 84
你应该像这样重写它:
case 'CRP':
case 'COO':
case 'FOU':
$('#jurd_tp_id').val(data);
break;
Run Code Online (Sandbox Code Playgroud)
您可以在switch参考文献中看到它.这里描述了case没有breaks 的连续语句的行为(称为"fall-through"):
与每个案例标签关联的可选break语句可确保程序在执行匹配语句后突破switch,并在switch后的语句处继续执行.如果省略break,程序将继续执行switch语句中的下一个语句.
至于为什么你的版本仅适用于第一个项目(CRP),它只是因为表达式'CRP'||'COO'||'FOU'求值为'CRP'(因为非空字符串true在布尔上下文中求值).因此,该case陈述仅相当于case 'CRP':一次评估.