2010-11-11 7 views
8

Ich denke, das sollte nicht so kompliziert sein, aber ich bin mir sicher, dass mir etwas Triviales fehlt. Danke für alle, die helfen können!Jquery - Einstellung einer Auswahlliste durch ID

XSL:

<select id="mySelectList"> 
    <option id="1" description="Blue" /> 
    <option id="2" description="Black" /> 
    <option id="3" description="Green" /> 
</select> 

JS:

$("#mySelectList option[id='1']").attr("selected", "selected"); 

EDIT: Fest meine select pro Nicks Reaktion.

Antwort

12

A <select> sollte wie folgt aussehen:

<select id="mySelectList"> 

Oder wenn Sie buchstäblich das Element wollen und das ist XML, entfernen Sie die # für eine element selector, wie folgt aus:

$("mySelectList option[id='1']").attr("selected", "selected"); 
+0

Ack sorry, Nick. Ich habe die Auswahl auf meinem Tag verpasst, als ich es in meine Frage geschrieben habe. Es sollte in der Tat sein: Das jquery-Kommando, das ich verwendet habe (und Sie wiederholten), funktionierte nicht für mich. Kann nicht herausfinden warum. – SethPlante

+0

@SethPlante - führen Sie es in einem 'document.ready' Handler aus? –

+0

Yup. Siehe meinen Kommentar oben zu dem anderen Poster. Die Umstellung auf die Verwendung von value = "1" anstelle von id = "1" funktioniert, aber ich versuche weiter herauszufinden, was mit dem Problem bei der ID passiert. – SethPlante

0

In HTML4, ID-Attribute muss mit einem Buchstaben beginnen, nicht mit einer Nummer (see the specifications). Z.B.

<select id="mySelectList"> 
    <option id="opt1" description="Blue" /> 
    <option id="opt2" description="Black" /> 
    <option id="opt3" description="Green" /> 
</select> 

So könnte man

$('#mySelectList option[id="opt1"]); 
+0

Sie können nicht mit einer Zahl * in HTML4 beginnen *, sollte ab hier bei HTML5 speziell sein . –

+0

@Nick Ja, danke für die wichtige Klarstellung. – lonesomeday

+0

Danke für die Antwort, lonesomeday. Ich habe die vorgeschlagenen Änderungen vorgenommen, funktioniert aber immer noch nicht. Ich bin mir nicht sicher, was es hasst, ID zu verwenden, aber als ich stattdessen "Value" verwendete, funktionierte es. Leider erfordert dies einige Back-End-Java-Fixes, um von "id" zu "value" zu wechseln. Irgendwelche anderen Ideen? – SethPlante

1

tun Code sollte wählen, was Sie wollen.

Sind Sie sicher, dass Sie möchten, dass Ihr <option> ohne einen Textwert ist?

Vielleicht möchten Sie

<select id="mySelectList"> 
    <option id="1" description="Blue">Blue</option> 
    <option id="2" description="Black">Black</option> 
    <option id="3" description="Green">Green</option> 
</select> 

Denken Sie auch daran, dass Sie das erste Element auswählen, die standardmäßig aktiviert ist.

Beispiel bei http://www.jsfiddle.net/Zfx3e/

Verwandte Themen