2014-09-17 7 views
5

Ich habe eine Reihe von Dropdown-Listen, und der erste Wert von allen ist leer (zB ""). Wie wähle ich am besten FIRST aus, dessen Wert "" ist? Ich habe versucht Dinge wiejquery - die erste Auswahl finden, die den ersten Wert ausgewählt hat?

$j("[id*='user'] option[value='']").first().prop("selected", true); 

Aber das ist es Einstellung vs auf der Suche nach einem, das übereinstimmt.

(ALL Ide mit ‚Benutzer‘ beginnen, ich der erste Nutzer auswählen, einen leeren Wert finden ...)

+0

Aber da alle select-Elemente eine Option mit einer 'defaultSelected'-Eigenschaft haben, können Sie feststellen, dass dies genauso ist wie das erste select-Element, unabhängig von der Benutzerauswahl. –

Antwort

1

Sie müssen also [id^=startwithid] mit jquery Wähler beginnen zu verwenden, alle IDs zu bekommen starten mit Benutzer, ein code

$j("[id^='user'] option[value=]:selected").first().parent(); 

Oder beste Weg :has wie zu verwenden, unter

$j("[id^='user']:has(option[value=]:selected)").first(); 
+0

Dies wird das Objekt der Option geben. nicht Element auswählen. –

+0

Ja richtig, lass es mich korrigieren. –

2

Da Sie das select-Element möchten, können Sie versuchen, .has()

$j("[id*='user']").has('option[value=""]:selected').first() 

Versuchen

$("[id*='user']").has('option[value=""]:selected').first().css({ 
 
    "color": 'red', 
 
    "border-color": 'green' 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<select id="user-1"> 
 
    <option value="">Select</option> 
 
    <option selected="selected">1</option> 
 
</select> 
 
<select id="user-2"> 
 
    <option value="">Select</option> 
 
    <option selected="selected">1</option> 
 
</select> 
 
<select id="user-3"> 
 
    <option value="">Select</option> 
 
    <option>1</option> 
 
</select> 
 
<select id="user-4"> 
 
    <option value="">Select</option> 
 
    <option>1</option> 
 
</select> 
 
<select id="user-5"> 
 
    <option value="">Select</option> 
 
    <option selected="selected">1</option> 
 
</select>

+0

@aldanux Kopie einfügen Fehler ... behoben –

+0

+1 Obwohl dies funktioniert, ändert sich die 'Select' Farbe für mich nicht in Chrome (Es ist in Ordnung in FF). Browser sind inkonsistent mit 'Select'-Styles, also könnte ich vorschlagen, dass Sie Ihr Beispiel aktualisieren, um auch den Rand neu zu gestalten (was * in Chrome angezeigt wird) zB:' $ ("[id * = 'user']") ('option [wert = ""]: ausgewählt'). zuerst(). css ({'border-color': 'rot', 'farbe': 'rot'}) ' – Moob

+0

@Moob fertig ..... –

0

Sie :has Wähler wählen suchen können "" Optionswert, wie ausgewählt:

$j("[id*='user']:has(option[value='']:selected)").first(); 

oder

$j("[id*='user']:has(option[value='']:selected):eq(0)"); 
Verwandte Themen