W porządku, powiedz, że mam to:
<select id='list'>
<option value='1'>Option A</option>
<option value='2'>Option B</option>
<option value='3'>Option C</option>
</select>
Jak wyglądałby selektor, gdybym chciał uzyskać „opcję B”, gdy mam wartość „2”?
Należy pamiętać, że nie jest to pytanie, jak uzyskać wybraną wartość tekstową, ale tylko dowolną z nich, niezależnie od tego, czy została wybrana, czy nie, w zależności od atrybutu value. Próbowałem:
$("#list[value='2']").text();
Ale to nie działa.
javascript
jquery
drop-down-menu
jquery-selectors
Paolo Bergantino
źródło
źródło
$("#list option").filter(function () { return $(this).html() == "stuff"; }).val();
Odpowiedzi:
Szuka elementu o identyfikatorze,
list
który ma właściwośćvalue
równą2
.To, czego chcesz, to
option
dzieckolist
:źródło
$('#list option:selected').text()
$('#list').val()
.trim()
po,.text()
ponieważ niektóre przeglądarki mogą czasami dodawać spacje przed i po tekście, które są niewidoczne dla użytkownika, ale mogą prowadzić do uzyskania błędnych wartości$("#list option[value='2']").text().trim()
Jeśli chcesz uzyskać opcję o wartości 2, użyj
Jeśli chcesz uzyskać opcję, która jest aktualnie wybrana, użyj
źródło
Działa to idealnie dla mnie, szukałem sposobu na przesłanie dwóch różnych wartości z opcjami generowanymi przez MySQL, a poniższe są ogólne i dynamiczne:
$(this).find("option:selected").text();
Jak wspomniano w jednym z komentarzy. Dzięki temu mogłem stworzyć funkcję dynamiczną, która działa ze wszystkimi moimi polami wyboru, w których chcę uzyskać obie wartości, wartość opcji i tekst.
Kilka dni temu zauważyłem, że podczas aktualizacji jQuery z 1.6 do 1.9 strony użyłem tego kodu, ten przestał działać ... prawdopodobnie był to konflikt z innym fragmentem kodu ... w każdym razie rozwiązaniem było usunięcie opcji z wywołanie find ():
To było moje rozwiązanie ... używaj go tylko wtedy, gdy masz problem z aktualizacją jQuery.
źródło
Na podstawie oryginalnego kodu HTML opublikowanego przez Paolo wymyśliłem następujące.
Został przetestowany do pracy z przeglądarkami Internet Explorer i Firefox.
źródło
dla wielu wybranych wartości w
#list
elemencie.źródło
Jeśli na stronie znajduje się tylko jeden tag select, możesz określić select wewnątrz id „list”
Aby uzyskać zaznaczony tekst
źródło
Spróbuj wykonać następujące czynności:
Powodem, dla którego oryginalny fragment kodu nie działał, jest to, że
OPTION
tagi są potomkamiSELECT
tagu, który maid
list
.źródło
To jest stare pytanie, które nie było aktualizowane od jakiegoś czasu. Prawidłowym sposobem na zrobienie tego byłoby użycie tego
Mam nadzieję, że to pomoże :-)
źródło
Chciałem uzyskać wybraną wytwórnię. To działało dla mnie w jQuery 1.5.1.
źródło
źródło
optgroup
znacznik jako dzieckoselect
i wybrana jest w tym opcjaoptgroup
. wykorzystanie,$("#list option:selected").text();
które działa nawet w tym przypadkuzostaw spację za selektorem id.
źródło
Możesz uzyskać wybrany tekst opcji za pomocą funkcji
.text();
możesz wywołać funkcję w ten sposób:
źródło
Podczas „zapętlania” przez dynamicznie tworzone elementy zaznaczania za pomocą .each (function () ...):
$("option:selected").text();
i$(this + " option:selected").text()
nie zwracał zaznaczonego tekstu opcji - zamiast tego był pusty.Ale rozwiązanie Petera Mortensena zadziałało:
Nie wiem, dlaczego zwykły sposób się nie udaje
.each()
(prawdopodobnie mój własny błąd), ale dziękuję, Peter. Wiem, że to nie było oryginalne pytanie, ale wspominam o nim „dla początkujących przybywających przez Google”.Zaczynałbym od
$('#list option:selected").each()
tego, że musiałem również pobrać rzeczy z wybranego elementu.źródło
Posługiwać się:
źródło
Szukałem Val dzięki wewnętrznej nazwie pola zamiast ID i przyszedłem z Google na ten post, który pomógł, ale nie znalazłem rozwiązania, którego potrzebuję, ale dostałem rozwiązanie i oto:
Może to pomóc komuś, kto szuka wybranej wartości o wewnętrznej nazwie pola zamiast długiego identyfikatora dla list SharePoint:
źródło
Potrzebowałem tej odpowiedzi, ponieważ miałem do czynienia z dynamicznie rzucanym obiektem, a inne metody tutaj nie działały:
To oczywiście używa obiektu DOM zamiast analizować jego HTML za pomocą nodeValue, childNodes itp.
źródło
Wskazówka: możesz użyć poniższego kodu, jeśli twoja wartość jest dynamiczna:
Lub (lepszy styl)
Jak wspomniano w jQuery, pobierz określony tekst znacznika opcji i umieść zmienną dynamiczną na wartości
źródło
Jako alternatywne rozwiązanie można również użyć części kontekstowej selektora jQuery, aby znaleźć
<option>
elementy zvalue="2"
listą rozwijaną:źródło
Chciałem wersji dynamicznej dla zaznaczonej wielokrotności, która wyświetlałaby to, co zaznaczono po prawej stronie (chciałbym czytać i widzieć
$(this).find
... wcześniej):źródło
Możesz uzyskać jeden z następujących sposobów
źródło