2011-10-12 215 views
5

我有一個坐在表格單元格中的選擇器。表格行有一個顏色,所以使用CSS我可以通過使用background-color:inherit;將下拉背景更改爲相同的顏色。但是,它會使用所有選項更改整個框的顏色。僅更改所選選項的顏色

是否有可能只改變所選擇的選項的顏色,如果沒有CSS可能與jQuery的幫助?

+2

你能告訴我們你的html和css嗎? Fyi ...造型選擇框非常困難! –

+2

可能不是,不;瀏覽器似乎只能訪問'select'元素的樣式。 –

回答

4

一切皆有可能使用jQuery :) 你應該試試這個:

$('.mySelect').change(function() { 
    $(this).find('option').css('background-color', 'transparent'); 
    $(this).find('option:selected').css('background-color', 'red'); 
}).trigger('change'); 

這裏是一個live demo

希望有幫助!

+0

實時演示不適用於Chrome/OSX –

+0

Ronn的回答考慮了選中的項目在非活動狀態以及點擊和展開時的情況。 – Ohiovr

0

你應該可以用jQuery來做到這一點。我可能是錯的(見大衛托馬斯的評論),但嘗試:

$("option[value='myValue']").css('background-color', 'red'); 
2

我能夠做到這一點,首先將SELECT元素的背景顏色設置爲我想要的結果,所有選項都是該顏色。然後我將所有選項都做成了特定的配色方案。最後,我使選定的選項與SELECT元素具有相同的顏色方案,因此該選項在下拉列表中顯示相同的顏色。

$.each($('select'), function(i,v) { 

    theElement = $(v); 
    theID = theElement.attr('id'); 

    // Set the SELECT input element to green background with white text 

    theElement.css('background-color', 'green'); 
    theElement.css('color', 'white'); 

    // Set all the options to another color (note transparant will show the green) 

    $('#'+theID).find('option').css('background-color', 'white'); 
    $('#'+theID).find('option').css('color', 'black'); 

    // Finally set the selected option to the same values as the SELECT element 

    $('#'+theID).find('option:selected').css('background-color', 'green'); 
    $('#'+theID).find('option:selected').css('color', 'white'); 
}); 
+1

從2011年10月12日起,答案就在那裏!此外,它被接受。 – Ozzy