Pytanie Pobierz wybrany tekst z listy rozwijanej (pole wyboru) za pomocą jQuery


Jak mogę uzyskać wybrany tekst (nie wybraną wartość) z rozwijanej listy w jQuery?


1989
2017-10-29 12:02


pochodzenie


Tylko moje dwa centy: menu rozwijane "ASP" nie jest specjalne; to po prostu dobry stary HTML. :-) - dotslash
Można odnieść się do tego artykułu: javascriptstutorial.com/blog/... - Dilip Kumar Yadav
na temat wanilii javascript, patrz stackoverflow.com/a/5947/32453 - rogerdpack


Odpowiedzi:


$("#yourdropdownid option:selected").text();

3320
2017-10-29 12:05



Myślę, że tak powinno być $("#yourdropdownid").children("option").filter(":selected").text() ponieważ is () zwraca wartość logiczną, czy obiekt pasuje do selektora, czy nie. - MHollis
Po drugie komentarz na temat is () zwraca boolen; alternatywnie, użyj następującej małej zmiany: $ ('# yourdropdownid'). children ("option: selected"). text (); - scubbo
@ Test DT3 is("selected").text() zwraca a TypeError: Object false has no method 'text' - ianace
@ DT3, nie myli się co do prędkości. Oto kilka szybkich statystyk uruchom na liście o realistycznym rozmiarze (8 lub mniej). - Adam Tomat
$('select').children(':selected') to najszybszy sposób: jsperf.com/get-selected-option-text - Simon


Spróbuj tego:

$("#myselect :selected").text();

W przypadku listy rozwijanej ASP.NET możesz użyć następującego selektora:

$("[id*='MyDropDownId'] :selected")

236
2017-10-29 12:04



Wersja ASP.NET jest tutaj jedyną Jquery, która współpracuje z asp.net dla mnie, dlatego też zgadzam się na tę. Ten: ("$ (" # yourdropdownid opcja: selected "). text (); ' nie działa na stronie asp.net, używając strony wzorcowej. - netfed
to nie działa, ponieważ strony wzorcowe asp.net rzuca losowe znaki przed selektorem. Technicznie szuka czegoś takiego ("#ct0001yourdropdownid) - CSharper
javascriptstutorial.com/blog/... - Dilip Kumar Yadav
@CSharper - Myślę, że mówiąc ASP.NET wyrzuca losowe postacie jest raczej mylące. Wcale nie są przypadkowe, są strukturalne i kierują się ścisłymi regułami (opartymi na takich rzeczach jak: ID pod kontrolą, a jeśli nie, to na podstawie indeksu miejsca, w którym występują w bieżącym poziomie drzewa, itp.) - freefaller
Cześć, jak to zrobić w rzędzie / komórce tabeli, skąd wiadomo, które z list rozwijanych z tabeli, szczególnie w ASP MVC 5 - transformer


Odpowiedzi zamieszczone tutaj, na przykład,

$('#yourdropdownid option:selected').text();

nie działa dla mnie, ale to zrobiło:

$('#yourdropdownid').find('option:selected').text();

Jest to prawdopodobnie starsza wersja jQuery.


185
2018-03-19 11:41



Druga odpowiedź działa z najnowszą wersją Jquery. - Doomsknight
Nie bądź nienawidzi tej odpowiedzi. Używając słowa kluczowego "znajdź", zrobiłem to za mnie. Pochodzę z zupełnie innego kontekstu. - ROFLwTIME
nie potrzebujesz części opcji w ogóle jako jej domniemanych z wybranymi .. po prostu używając $ ('# yourdropdown: selected'). text (); będzie działać dobrze - Dss
jquery-1.10.2.min, ten działał dla mnie, a nie dla innych. - kubilay


Jeśli masz już listę rozwijaną dostępną w zmiennej, to jest to, co działa dla mnie:

$("option:selected", myVar).text()

Inne odpowiedzi na to pytanie pomogły mi, ale ostatecznie wątek na forum jQuery $ (ta + "opcja: wybrana"). Wybrana opcja attr ("rel") nie działa w IE pomógł najbardziej.

Aktualizacja: poprawiono powyższy link


93
2018-02-04 05:17





$("option:selected", $("#TipoRecorde")).text()

59
2017-08-16 17:56





$("#DropDownID").val()  da wybraną wartość indeksu.


54
2017-11-14 09:22



Niezupełnie odpowiedź na pytanie, ale była dla mnie przydatna. Pytanie wymaga zaznaczonego tekstu. - Peter


To działa dla mnie:

$('#yourdropdownid').find('option:selected').text();

jQuery wersja: 1.9.1


50
2017-09-25 07:36



To zadziałało dla mnie, ponieważ na change wydarzenie, które mogę teraz użyć $(this).find('option:selected').text() aby uzyskać tekst. - Timo002
$(this).children(':selected').text() też by działało. @ Timo002 - Mr. Mak


To działa dla mnie

$("#dropdownid").change(function() {
    alert($(this).find("option:selected").text());
});

Jeśli element został utworzony dynamicznie

$(document).on("change", "#dropdownid", function() {
    alert($(this).find("option:selected").text());
});

46
2017-08-14 11:12





W tekście wybranego elementu użyj:

$('select[name="thegivenname"] option:selected').text();

Dla wartości wybranego elementu użyj:

$('select[name="thegivenname"] option:selected').val();

40
2018-01-24 23:22





Różne drogi

1. $("#myselect option:selected").text();

2. $("#myselect :selected").text();

3. $("#myselect").children(":selected").text();

4. $("#myselect").find(":selected").text();

30
2017-08-03 19:39