2010-11-11 18 views
8

Mam wrażenie, że nie powinno to być tak skomplikowane, ale jestem pewien, że brakuje mi czegoś trywialnego. Dzięki za każdego, kto może pomóc!Jquery - Ustawianie opcji wyboru listy według 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: Fixed moja wybierz za odpowiedź Nicka.

Odpowiedz

12

<select> powinna wyglądać następująco:

<select id="mySelectList"> 

Lub jeśli dosłownie chcą element i to XML, usuń # dla element selector, tak:

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

Przykro mi, Nick. Brakowało mi zaznaczenia na moim tagu, gdy zapisałem go na moje pytanie. Powinno to być: . Polecenie jquery, którego użyłem (i powtórzyłeś) nie działa dla mnie. Nie mogę zrozumieć dlaczego. – SethPlante

+0

@SethPlante - czy uruchamiasz go wewnątrz programu obsługi "document.ready"? –

+0

Yup. Zobacz mój komentarz powyżej do drugiego plakatu. Przechodzenie do używania wartości = "1" zamiast id = "1" działa, ale zamierzam nadal próbować dowiedzieć się, o co chodzi z tym problemem, używając id. – SethPlante

0

W HTML4, atrybuty tożsamości musi zaczynać się od litery, a nie liczby (see the specifications). Na przykład.

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

Więc można zrobić

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

Nie mogą zaczynać się od cyfry * w HTML4 *, powinny być od tego ściśle określone, biorąc pod uwagę implementację HTML5 . –

+0

@ Tak Tak, dziękuję za ważne wyjaśnienie. – lonesomeday

+0

Dzięki za odpowiedź, lonesomeday. Wprowadziłem sugerowane zmiany, ale nadal nie działa. Nie wiem, czego nienawidzi próbując użyć identyfikatora, ale kiedy przełączyłem się na używanie "wartości" zamiast tego zadziałało. Niestety wymaga to pewnych back-endowych poprawek Java, aby przełączyć z "id" na "wartość". Jakieś inne pomysły? – SethPlante

1

Kod powinien wybrać co chcesz.

Czy na pewno chcesz, aby Twój <option> był bez wartości tekstowej?

Może chcesz

<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> 

Należy także pamiętać, że Zaznacz pierwszy element, który jest domyślnie zaznaczona.

przykład pod adresem http://www.jsfiddle.net/Zfx3e/

Powiązane problemy