Последующий ответ на этот вопрос: Установка цвета фона для опций выбора в JQuery
У меня есть страница с несколькими блоками выбора, как показано ниже:
<select name="item-0-status" id="id_item-0-status">
<option value="">---------</option>
<option value="1">Online</option>
<option value="2">Offline</option>
<option value="3">Unknown</option>
</select>
Они автоматически генерируются в django, поэтому невозможно применять классы, идентификаторы или атрибуты css непосредственно к параметрам. Элементы select имеют идентификаторы "item-0-status", "item-1-status", "item-2-status" и т.д.
Я выделяю цвета для параметров с помощью следующего кода JQuery:
$('select[id$=-status][id^=id_item-]').children().each(
function (){
if($(this).val() == 0){
$(this).css('backgroundColor','white');
}
if($(this).val() == 1){
$(this).css('backgroundColor','green');
}
if($(this).val() == 2){
$(this).css('backgroundColor','red');
}
if($(this).val() == 3){
$(this).css('backgroundColor','orange');
}
}
);
Что отлично работает.
Я также хочу, чтобы элементы выбора имели тот же цвет фона, что и выбранный параметр, который я пытаюсь достичь, используя следующее:
$('select[id$=-status][id^=id_item-]').each(
function (){
$(this).css('backgroundColor',$('option:selected',this).css('backgroundColor'));
}
);
Однако это просто окрашивает элемент выбора в синий цвет (я думаю, что он принимает цвет от свойства наведения, а не от фона). Это в Firefox 3.6.8, который для целей этого вопроса является единственным браузером.
Любая идея, как это исправить?