2016-03-25 12 views
0

I Mehrfachauswahl-Element haben wieMultiselect-Element und Styling ausgewählte Option

gemacht
<button class="multiselect dropdown-toggle btn btn-default" data-toggle="dropdown" type="button" style=" title="None selected"> 
<span class="multiselect-selected-text">None selected</span> 
<b class="caret"></b> 
</button> 

Wenn Sie sehen, kann auf Standard gemacht, dass None selected Titel gesetzt. Bei einer ausgewählten Aktion ändert sich dies natürlich zum Titel des ausgewählten Elements.

Meine Frage ist: Wie kann ich mit CSS Ziel None selected und caret gefolgt font-color: gray; zu sein, und wenn etwas anderes font-color-black zum Beispiel ändern ausgewählt ist?

Update: Ich habe versucht, mit: enthält Selektor wie vorgeschlagen und in diesem sehr einfachen Szenario Ich erhalte immer wahr (alert)

if ($(".multiselect-selected-text:contains('xxxxxx')")) { 
     alert('a'); 
    } else { 
     alert('b'); 
    } 

Antwort

1

Sie können dies erreichen die :contains Selektor in Jquery. Versuchen Sie, diese

$('.multiselect-selected-text:contains("None selected")').parent().addClass('grayOut'); 

Css Regel

.grayOut{ 
    color: gray; 
} 

Working Fiddle

Und ofcource Sie müssen das Skript auf Änderungsereignis der Multiselect-Plugin auszuführen.

+0

@ user1765862 '($ (". Multiselect-selected-text: enthält ('xxxxxx') "))' gibt ein Element zurück, wenn die Bedingung erfüllt, sonst gibt es '[]' zurück, was 'definiert' und ist Daher wird Ihre if-Schleife ausgeführt. Um es richtig zu validieren, versuchen Sie dieses '$ (". Multiselect-selected-text: enthält ('xxxxxx') "). Length! = 0' –