使用jQuery更改背景颜色

问题描述:

我有一个具有多个下拉菜单的窗体......我想在禁用时将可见下拉菜单的背景颜色设置为灰色。所有这些下拉的ID都以usrControl开头。这是我有这么多..使用jQuery更改背景颜色

$('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');" + _ 
               "});" 

这工作。但是,这将整个控件的背景设置为灰色,我如何将所选项目的颜色更改为灰色?

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

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

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

UPDATE:应对以下OP的澄清,你可以简单地选择像这样的包含选项:这里

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

工作例如:http://jsfiddle.net/Cwm4W/1/

+0

This Works。但是,这将整个控件的背景设置为灰色,我如何将所选项目的颜色更改为灰色? – Tgibson 2010-12-20 21:30:34

+0

您可以选择select下面的选项标签。查看上面更新的答案。 – 2010-12-20 22:04:31

+0

男人,你们好!谢谢!!最后一个问题。我怎么能做一个输入(文本框)而不是整个控件,只是我想要改变颜色的文本框灰色。 – Tgibson 2010-12-20 22:45:02

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

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

我相信你正在寻找

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