使用jQuery更改背景颜色

时间:2010-12-20 19:29:05

标签: jquery jquery-selectors drop-down-menu

我有一个包含多个下拉菜单的表单...我想将可见下拉列表的背景颜色设置为灰色时禁用它们。所有这些下拉列表的id都以usrControl开头。这就是我迄今为止所拥有的......

    $('select[id ^= "usrControl"]:visible').each(function(){
this.css("background-color")
});

不确定如何获取已禁用/已启用的选择器。

提前致谢 alt text

Protected _picklistColorScriptText As String = "$(document).ready(function(){ " + _
                                                "$('[id ^= ""usrControl""]:visible:disabled').css(""background-color"", '#DCDCDC'); " + _
                                                "$('[id ^= ""usrControl""]:visible:enabled').css(""background-color"", '#FFFFFF');" + _
                                                "});"

这很有效。但是,这会将整个控件的背景设置为灰色,如何将所选项的颜色更改为灰色?

3 个答案:

答案 0 :(得分:3)

您可以使用:disabled伪选择器。另外,你不需要jQuery.each。只需对付返回的节点集。

$('select[id ^= "usrControl"]:visible:disabled').css("background-color", 'gray');

这里的工作示例:http://jsfiddle.net/Cwm4W/

更新:回应下面的OP澄清,你可以简单地选择包含的选项:

$('select[id ^= "usrControl"]:visible:disabled option').css("background-color", 'gray');

这里的工作示例:http://jsfiddle.net/Cwm4W/1/

答案 1 :(得分:0)

您只获取CSS属性。 试试这个:

$(this).css( "property", "value" );

答案 2 :(得分:0)

我相信你在寻找

$('select[id ^="usrControl":visible:disabled].each(...