1

オプション値が複数の値のいずれかと等しいかどうかを確認する最も簡単な方法は何ですか?

これは機能しますが、1 つの値しかチェックできません。

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
} 
4

1 に答える 1

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;
}

参考文献:

于 2013-02-27T21:39:08.377 に答える