Jak ustawić indeks listy rozwijanej w jQuery, jeśli sposób znajdowania kontrolki jest następujący:
$("*[id$='" + originalId + "']")
Robię to w ten sposób, ponieważ tworzę formanty dynamicznie i ponieważ identyfikatory są zmieniane podczas korzystania z formularzy sieci Web, znalazłem to jako obejście, aby znaleźć mi niektóre kontrolki. Ale kiedy już mam obiekt jQuery, nie wiem, jak ustawić wybrany indeks na 0 (zero).
#an-id
jest szybszy, ale*[id$=ends-with]
jest o wiele wolniejszy, to właśnie oznacza "przypisz klasę do elementu"Właśnie to znalazłem, działa dla mnie i osobiście uważam, że jest łatwiejszy do odczytania.
Spowoduje to ustawienie rzeczywistego indeksu, tak jak w przypadku opcji nr 3 odpowiedzi gnarfa.
Kiedyś to nie działało, ale teraz ... zobacz błąd: http://dev.jquery.com/ticket/1474
Uzupełnienie
Zgodnie z zaleceniami w komentarzach użyj:
$("select#elem").prop('selectedIndex', 0);
źródło
.prop('selectedIndex', 0);
niezależnie od tego, czy.attr()
działa, czy nie :)Piszę tę odpowiedź w 2015 roku iz jakiegoś powodu (prawdopodobnie starsze wersje jQuery) żadna z pozostałych odpowiedzi nie zadziałała. Chodzi mi o to, że zmieniają wybrany indeks, ale tak naprawdę nie odzwierciedla on rzeczywistego menu.
Oto inny sposób zmiany indeksu i odzwierciedlenia go w menu:
źródło
prop('selectedIndex', ...);
zmianą zaznaczenia (testowane z Chrome i Firefox).change
zdarzenie na liście rozwijanej, co może być również użyteczną poprawką / obejściem dla osób, które zmieniają wybór, dzwoniącprop('selectedIndex', ...)
, a nieval(...)
. Być może problem polegał na tym, że nasłuchiwałeśchange
wydarzenia, a TO nie działało w Twoim przypadku? To prawda, że zwykła zmianaprop
erty nie spowoduje wyzwolenia żadnych wydarzeń ...używam
aby wybrać element opcji, który ma wartość = 'xyz'
źródło
Kod JQuery:
Kod JSP:
źródło
Chcesz pobrać wartość pierwszej opcji w wybranym elemencie.
źródło
Aby wybrać drugą opcję
Tutaj dodajemy „wyzwalacz („ zmiana ”), aby zdarzenie było uruchamiane.
źródło
ustawi go na 0
źródło
Wybierz czwartą opcję
przykład na jsfiddle
źródło