2017-07-05 4 views
0

Ich möchte die Farbe der ersten Option in #ccc ändern, andere bleiben # 000, aber es funktioniert nicht.Warum? Vielen Dank. Ich möchte keine Änderungsfunktion verwenden, was ich für unnötig halte.Wie ändere ich die Textfarbe anhand bestimmter Optionen?

etwas wie folgt aus: enter image description here

HTML:

<select id="continent"> 
     <option value="-1">continent</option> 
     <option value="1">US</option> 
     <option value="2">UK</option> 
    </select> 

JS:

$("#continent option[value='-1']").css('color','#ccc'); 
+0

Änderungsfunktion ist erforderlich Wie werden Sie wissen, dass Option 1 ohne die Änderungsfunktion ausgewählt wurde? – guradio

+0

nur die Farbe der ersten Option nicht die –

+0

Inline-Stil hinzufügen, aber die Farbe wird nur auf die Option '' – guradio

Antwort

1

$("#continent").change(function(){ 
 
    $("#continent").val() == "-1" ? $("#continent").css("color", "red") : $("#continent").css("color", "blue"); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="continent"> 
 
    <option value="-1">continent</option> 
 
    <option value="1">US</option> 
 
    <option value="2">UK</option> 
 
</select>

Denken Sie daran, die Farbe der Standardoption

+0

Vielen Dank, Ihr funktioniert am besten. –

1

hier Lösung

$('.mySelect').change(function() { 
    if($(this).find("option:selected").attr("value")==2){ 
    $(this).find('option:selected').css('color', 'red'); 
    }else{ 
    $(this).find('option:selected').css('color', 'blue'); 
    } 

}); 

In obigem Code voreinzustellen i .find() Methode verwenden, die für ausgewähltes Kind von ausgewähltem Elemente verwendet wird try this code in fiddle

1

Warum möchten Sie jQuery verwenden? Dies kann mit reinem CSS geschehen.

#continent option { 
 
    background-color: white; /* on XFCE the default background-color is #CCC! */ 
 
}
<select id="continent"> 
 
    <option value="-1" style="color:#cccccc">continent</option> 
 
    <option value="1">US</option> 
 
    <option value="2">UK</option> 
 
</select>

jedoch sollten Sie wahrscheinlich nicht tun, weil es sieht aus wie die Option deaktiviert war, aber es ist nicht. Dies ist nicht intuitiv und gegen die Benutzerfreundlichkeit.

Abgesehen davon sieht es auf anderen Betriebssystemen anders aus. Dies ist, wie das Snippet von oben wie auf ubuntu mit XFCE aussieht:

enter image description here

Und das ist, was eine andere Lösung sieht so aus auch die Farbe der <select> ändert grau leuchten, wenn die erste Option ausgewählt ist:

enter image description here

Deshalb sollten Sie entweder <option value="-1" disabled> oder eine andere Farbe verwendet werden soll.

Verwandte Themen