このようなことは、サーバー側で行う必要があります。そうすることで、クライアントで使用するリソースの量を制限することができます。それはあなたがフロントエンドでそれを行うとしたら、私はクリーンで簡潔なコードを維持するためにunderscore.jsのようなものを使用することを検討することをお勧めします言われている:
var values = ["Red", "Green"],
colors = document.getElementById("colors");
_.each(colors.options, function (option) {
option.selected = ~_.indexOf(values, option.text);
});
あなたはjQueryのを使用している場合、それは可能性がありもっと簡潔なこと:
var values = ["Red", "Green"];
$("#colors option").prop("selected", function() {
return ~$.inArray(this.text, values);
});
あなたがunderscore.jsやjQueryのようなツールなしでこれを行うとしたら、あなたが書くのはもう少しを持っているでしょうし、それはもう少し複雑であることを見つけることがあります。
var color, i, j,
values = ["Red", "Green"],
options = document.getElementById("colors").options;
for (i = 0; i < values.length; i++) {
for (j = 0, color = values[i]; j < options.length; j++) {
options[j].selected = options[j].selected || color === options[j].text;
}
}
これは近いですが、格納される値はオプションの「インデックス」ではなく、オプションの値です。 –
シンプルな修正 - 答えが更新されました! –
「Array.prototoype.indexOf」はバージョン9まではIEで利用できませんでした。 – Sampson