检查选项值是否等于多个值中的任何一个的最简单方法是什么?
这有效但只允许检查一个值。
if ($(this).val() == 'QA') {
//do something
}
我想检查多个值。
if ($(this).val() == 'QA, Efficiency, Legal, Time, BadDebt, WriteOff, BusinessInterruption') {
//do something
}
我想我可以做到这一点,但似乎代码太多了?
if ($(this).val() == 'QA' || $(this).val() == 'Efficiency') {
//do something
}
答案 0 :(得分:2)
您可以使用$.inArray()
:
var valuesArray = ['QA', 'Efficiency', 'Legal', 'Time', 'BadDebt', 'WriteOff','BusinessInterruption'];
if ($.inArry($(this).val(),valuesArray) !== -1) {
// value is present
}
或者,在支持Array.indexOf()
的浏览器中:
if (valuesArray.indexOf($(this).val()) !== -1) {
// value is present
}
你也可以使用一个简单的开关:
switch($(this).val()) {
case 'QA':
case 'Efficiency':
case 'Legal':
case 'Time':
case 'BadDebt':
case 'WriteOff':
case 'BusinessInterruption':
/* switches continue with all subsequent comparisons until they reach
a `break`, so this function 'doStuff()' will be executed if *any*
of the above match */
doStuff();
break;
default:
noneOfTheAboveMatched();
break;
}
参考文献: