0

頭を悩ませていることがあります... かなり前から試しています。

私はjQueryのこのスニペットを持っています:

$("#amp").on('change', function () { 
    $("#cab").prop('disabled', $(this).val() == "Combo Models - 22W");
    $("#cab option").prop("selected", true);
});

この正確なコードを 4 回複製する必要がありますが、「Combo Models - 22W」を 4 つの異なるものに変更する必要があります。

コードを4回複製してプロパティを変更しようとしましたが、うまくいきませんでした。

次のような言い方はありますか?

$("#cab").prop('disabled', $(this).val() == "Combo Models - 22W" OR "Combo Models - 50W" OR "Combo Models - 75W");  

...しかし、実際に機能するスニペット? ありがとう!

4

3 に答える 3

0

次のようなものが機能するはずです。

$("#cab").prop('disabled', ( $(this).val() == "Combo Models - 22W" ) || ( $(this).val() == "Combo Models - 50W" ) || ( $(this).val() == "Combo Models - 75W" )); 

それにもかかわらず、このようなことをするよりも、元の問題に対するより良い答えがあると思います。これらの文字列をハードコーディングする代わりに、ある種の変数を使用できるはずです。

于 2013-07-21T21:10:46.507 に答える
0

すべての値をハッシュ マップに格納できます。このような:

var map = {};
map["Combo Models - 22W"] = true;
map["Combo Models - 50W"] = true;
map["Combo Models - 75W"] = true;

等々。

次に、次を使用できます。

$("#cab").prop('disabled', false || map[$(this).val()]);

を使用して取得した文字列map[$(this).val()がハッシュ マップにある場合、 は にmap[$(this).val()評価されtrueます。それ以外の場合は に評価されundefinedます。その後、false || undefinedパーツは単純で明示的な になりfalseます。

于 2013-07-21T21:07:28.190 に答える