大量のセレクター操作を実行していますが、それぞれが特に古いブラウザーではあまり効率的ではありません。
1 つのセレクター操作を実行し、その 1 つの操作ですべてのオプション値を処理する方がはるかに優れています。これを行うには、適切なクラス名を与えるオプション値のルックアップ テーブルを作成します。これが例です。入力が多いため、表全体には記入しませんでしたが (残りは入力できます)、次のように機能します。
これはあなたが持っていたものよりも何倍も速いはずです(おそらく100倍以上速いでしょう):
// class names used for various options
var optionClasses = [
"ART - LETTRES - SPECTACLE",
"ECONOMIE",
"ETRANGER"
];
// the number in the option map corresponds to an array index
// in the optionClasses array. This is done to avoid repeating
// the same string over and over
var optionMap = {
'ART - LETTRES - SPECTACLE': 0,
'A la une ALS': 0,
'Cirque' : 0,
'Festival multidisciplinaire': 0,
'Littérature-édition': 0,
'Musique classique': 0,
'Photographie': 0,
'Cinéma': 0,
/* .... */
'ECONOMIE': 1,
'A la une Economie': 1,
/* ... */
'ETRANGER': 2,
'A la une Etranger': 2
/* fill in the rest of the data here */
};
jQuery("select option").each(function() {
if (this.value && this.value in optionMap) {
var clsNum = optionMap[this.value];
$(this).addClass(optionClasses[clsNum]);
}
});
シンプルで、以前より何倍も速く実行できるはずです。これには 1 つのセレクター操作があり、ハッシュ テーブル ルックアップを使用して、指定されたオプション値の適切なクラス名を見つけます。