【发布时间】:2011-07-01 09:14:12
【问题描述】:
跟进这个问题:Setting background-color of select options in 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 类、id 或属性直接应用于选项。选择元素的 id 为 '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 中,就本问题而言,它是唯一相关的浏览器。
知道如何解决这个问题吗?
【问题讨论】: