2016-08-03 36 views
0

Ich benutze JQuery 1.8. Ich möchte eine Option in meinem Auswahlmenü Wert auszuwählen, damit ich diese Anweisung verwendenWie wähle ich nur die erste Option, die mit jquery einem Wert entspricht?

$('.countryField').find('option[value="233"]') 

jedoch das Problem mit der oben ist, wenn es mehrere Optionen mit dem gleichen Wert sind, sind alle ausgewählt. Wie stelle ich die obige Anweisung so ein, dass nur eine Option ausgewählt ist? Fühlen Sie sich frei, mir eine Nachricht zu senden und darüber zu sprechen, dass es kein Auswahlmenü mit mehreren Optionen mit denselben Werten geben sollte.

Edit: ist die Konsolenausgabe in Reaktion auf eine der

> $('.countryField').find('option').prop('selected', false) 
jQuery.fn.init[255] 
> $('.countryField').find('option[value="233"]:first').prop('selected', true) 
[<option value=​"233" selected=​"selected">​United States​</option>​] 
> $('.countryField').find('option[selected="selected"]') 
[<option value=​"233" selected=​"selected">​United States​</option>​, <option selected=​"selected" value=​"233">​United States​</option>​] 
+0

Als Antwort auf deine Bearbeitung erfolgen - Sie Einstellung der 'selected' ** Eigenschaft **, dann Elemente mit einem' ausgewählt Auswahl '** Attribut **. Das Aktualisieren des Werts einer Eigenschaft eines Objekts ändert seine HTML-Elementattribute nicht. Die Antworten zum Festlegen der Eigenschaft sind korrekt, aber Sie wählen nicht richtig aus - https://jsfiddle.net/h9neus61/ –

Antwort

0

Sie gegebenen Anregungen hier :first Selektor verwenden können, die das erste abgestimmte DOM-Element auswählt.

+0

Dies funktioniert nicht. Ich habe das Konsolenoutput in meine Bearbeitung aufgenommen. Nach der Anwendung Ihres Vorschlags sind noch zwei Optionen ausgewählt. –

+0

Haben Sie mehrere 'countryField' Select-Elemente auf der Seite? –

+0

Überprüfen Sie einmal, wie viele 'countryField' Elemente auf der Seite auswählen, wie '$ ('. CountryField '). Length'. Dann können Sie auf einer Auswahlliste wie '$ ('. CountryField: first'). Length 'auswählen und dann' $ ('. CountryField: first'). Find ('option [value =" 233 "]: first') .length' & '$ ('. countryField: first'). find ('option [ausgewählt =" ausgewählt "]'). length ' –

0

: eq (0) wird verwendet, um die erste Option mit dem Wert "233" zu wählen, und es wird ausgewählt werden.

$('.countryField [value="233"]:eq(0)').prop('selected', true); 
+0

Wie beim Vorschlag von palash funktioniert das auch nicht. Die Bearbeitung in meiner Frage listet die Ausgabe auf. Wenn Sie "$ ('. CountryField') ersetzen. Find ('option [value =" 233 "]: first')" mit Ihrem Vorschlag ist die Ausgabe immer noch zwei ausgewählte Optionen. –

0

kann dies auch mit reinem Javascript

document.querySelector(' .countryField option').setAttribute('selected','selected') 
+0

All dies macht die erste Option in der Liste ausgegeben. Es kann nichts ausgewählt oder deaktiviert werden. –