2010-12-20 194 views
2

我有一個具有多個下拉菜單的窗體......我想在禁用時將可見下拉菜單的背景顏色設置爲灰色。所有這些下拉的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');" + _ 
               "});" 

這工作。但是,這將整個控件的背景設置爲灰色,我如何將所選項目的顏色更改爲灰色?

回答

3

你可以使用: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

0

您只獲取CSS屬性。 試試這個:

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

我相信你正在尋找

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