Soru JQuery'yi kullanarak bir açılır listeden seçili metni (kutu seç) alın


Seçilen metni (seçilen değer) jQuery'deki bir açılır listeden nasıl alabilirim?


1989
2017-10-29 12:02


Menşei


Sadece benim iki sent: Bir "ASP" açılan aşağı özel değildir; Bu sadece iyi eski HTML. :-) - dotslash
Bir kişi bu makaleye başvurabilir: javascriptstutorial.com/blog/... - Dilip Kumar Yadav
vanilla javascript yolu için bkz. stackoverflow.com/a/5947/32453 - rogerdpack


Cevaplar:


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

3320
2017-10-29 12:05



Bence bu olmalı $("#yourdropdownid").children("option").filter(":selected").text() () nesnenin seçiciyle eşleşip eşleşmediğine dair bir boole döndürür. - MHollis
İkincisi hakkında yorum () bir boole dönen; Alternatif olarak, aşağıdaki küçük değişikliği kullanın: $ ('#dropdown' '), çocuklar ("option: selected"), text (); - scubbo
@ DT3 test edildi is("selected").text() bir döndürür TypeError: Object false has no method 'text' - ianace
@ DT3, o hızlar konusunda yanlış değil. İşte bazı hızlı istatistikler gerçekçi büyüklükte bir düşüş (8 veya daha fazla) üzerinde çalıştırın. - Adam Tomat
$('select').children(':selected') en hızlı yoldur: jsperf.com/get-selected-option-text - Simon


Bunu dene:

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

Bir ASP.NET açılır menüsü için aşağıdaki seçiciyi kullanabilirsiniz:

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

236
2017-10-29 12:04



Buradaki ASP.NET sürümü, benim için asp.net ile çalışan tek JQuery'dir. Bu: ('$ ("#dropdownid seçeneği: seçili") text ();' bir ana sayfa kullanarak bir asp.net sayfasında çalışmadı. - netfed
işe yaramaz çünkü asp.net master sayfaları seçicinin önünde rastgele karakterler atar. Teknik olarak böyle bir şey arıyor ("#ct0001yourdropdownid) - CSharper
javascriptstutorial.com/blog/... - Dilip Kumar Yadav
@CSharper - ASP.NET diyorum rastgele karakterler atar oldukça yanıltıcıdır. Rastgele değiller, yapısaldırlar ve katı kurallara uymalıdırlar ( ID kontrolünüzde ve eğer değilse o zaman ağacın mevcut seviyesinde nerede meydana geldiğine bağlı olarak, vs.) - freefaller
Merhaba, bunu bir Tablo satırı / hücresinin içinde nasıl yaparsınız, özellikle ASP MVC 5'deki tablodaki açılır listeden hangisini biliyorsunuz? - transformer


Örneğin, burada yayınlanan cevaplar

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

benim için çalışmadı, ama bu yaptı:

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

JQuery'nin eski bir sürümü olabilir.


185
2018-03-19 11:41



Diğer cevap Jquery'nin son sürümü ile çalışır. - Doomsknight
Bu cevaptan nefret etmeyin. "Bul" anahtar kelimesini kullanmak benim için hile yaptı. Tamamen farklı bir bağlamdan geliyordum. - ROFLwTIME
Seçenek kısmına, seçtiğiniz ile ima edildiği gibi hiç ihtiyacınız yok .. sadece $ ('#Indropdownid: selected') kullanarak. iyi çalışacak - Dss
jquery-1.10.2.min, bu benim için çalıştı, başkaları için değil. - kubilay


Eğer bir değişkende bulunan açılan listeye sahipseniz, bu benim için uygun olanıdır:

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

Bu sorudaki diğer cevaplar bana yardımcı oldu, ama sonuçta jQuery forum dizisi $ (this + "option: selected"). attr ("rel") seçeneği seçili IE'de çalışmıyor en çok yardımcı oldu.

Güncelleme: yukarıdaki bağlantıyı düzeltildi


93
2018-02-04 05:17





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

59
2017-08-16 17:56





$("#DropDownID").val()  Seçilen indeks değerini verir.


54
2017-11-14 09:22



Tam olarak sorunun cevabı değil, ama benim için yararlıydı. Soru seçilen metni istiyor. - Peter


Bu benim için çalışıyor:

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

jQuery sürüm: 1.9.1


50
2017-09-25 07:36



Bu benim için çalıştı, çünkü change şimdi kullanabileceğim etkinlik $(this).find('option:selected').text() Metin almak için - Timo002
$(this).children(':selected').text() ayrıca çalışırdı. @ Timo002 - Mr. Mak


Bu benim için çalışıyor

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

Öğe dinamik olarak oluşturulduysa

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

46
2017-08-14 11:12