jquery:选择选项和背景颜色

时间:2010-12-03 11:24:12

标签: javascript jquery html select

问候, 有这样的选择框:

<select id="events">
    <option value="1" style="background-color:green;">Event 1</option>
    <option value="2" style="background-color:yellow;">Event 2</option>
    <option value="3" style="background-color:blue;">Event 3</option>
    <option value="4" style="background-color:red;">Event 4</option>
</select>

在此选择框的初始浏览器呈现和每次选择完成时 ,我希望selectbox“events”获取所选选项的背景颜色

如何通过jquery或通过常规javascript实现这一目标?

4 个答案:

答案 0 :(得分:2)

//Alert color on initial page load
var bkg = $("#events option:selected").css("background-color");
    alert(bkg);

//Handle change event and alert color when selection is done
$(function(){
 $("#events").change(function() {
    var bkg = $("#events option:selected").css("background-color");
    alert(bkg);
 });
});

答案 1 :(得分:1)

selected

$('#events').bind('change', function() {

   var bgc = $(this).find('option:selected').css('background-color');

});

答案 2 :(得分:1)

你可以这样做:

$("#events").change(function() {
    $(this).css("backgroundColor",
      $(this).find(":selected").css("backgroundColor")
    );
}).change();

You can test it out here但是,这在所有浏览器中都不起作用,尤其是在IE中,<select>元素是众所周知的不可渲染的(缺少更好的......或真实的单词)。它将在支持它的浏览器中工作,而对那些不支持它的浏览器没有任何影响。您可以改为等待为父元素设置样式,以便在所有浏览器中提供指示符something like this

答案 3 :(得分:0)

IE友好的方式,这必须应用于option标记。

$(this).html($(this).html());