0

特定の条件が選択されている場合、jQueryで複数選択リストのオプションの一部の色を赤に変更したいと思います。これが私のコードです:

$.each(subjects, function(key, subject) 
        {
            if (select.find('option[value=\"' + encodeURIComponent(subject) + '\"]').length === 0 && subject!="") 
            {
                   $('<option>', {
                     value: subject,
                     text: subject
                     }).appendTo(select);

                 if (colored==true)
                     {
                         //Change color of options' text
                         $("option[value='"+subject+"']").css('color', 'red');
                     }
            }
        });

このコードの問題は、jQueryが機能している現在の複数選択のオプションだけでなく、その名前が変数selectで定義されていることを赤に着色することです。ただし、jQueryには、ページ上の他のすべての複数選択でこれらのオプションが含まれている場合は、それらにも色が付けられます。

このコードを編集して、jQueryが現在の複数選択に含まれているオプションのみに色を付けるようにするにはどうすればよいですか?この名前もselect変数で定義されていますか?

たとえば、

$("option[value='"+subject+"']").css('color', 'red');

(select.find("option[value='"+subject+"']").css('color', 'red');

動作しませんでした。正しいコードは何でしょうか?前もって感謝します。

4

1 に答える 1

0

試しましたか?

$("#" + selectList + " option[value='"+ encodeURIComponent(subject)+"']").css('color', 'red');

LMM-エンコードを含めるように編集

于 2013-01-03T20:13:23.393 に答える