選択したオプションのみに CSS 背景色を適用するにはどうすればよいですか? 選択オブジェクトにクラスを適用すると、すべてのオプションのスタイルが設定されます。必要なクラスをオプションに適用すると、選択ボックスが展開されたときにすべてのオプションのスタイルが適切に表示されます。ただし、選択ボックスが折りたたまれると、選択されたオプションのスタイルが失われます。この動作は、Chrome と Firefox の最新バージョンで見られます。
以下は、超基本的なコード例です。jQuery がないと、選択したオプションは常にスタイルなしで表示されます。jQuery では、「変更された」オプションが選択されると、すべてのオプションが「変更された」としてスタイル設定されます。私はこれを回避する方法を見つけることができませんでした.何かアイデアはありますか?
オプションのスタイルを変更したくありません。特定のオプションが選択されたときに、他のオプションのスタイリングをオーバーライドせずに、そのオプションのスタイリングを表示できるようにするためだけに。
<style>
select.modified,
option.modified{
background-color: red;
}
</style>
<select id="example">
<option value="bird" class="modified">bird</option>
<option value="cat">cat</option>
<option value="dog" class="modified">dog</option>
</select>
<script>
$('#example').on('change',function(){
$(this).prop('class',$(this).find('option:selected').prop('class'));
});
</script>