To działa doskonale
<select name="selectbox" onchange="alert(this.value)">
Ale chcę zaznaczyć tekst. Próbowałem w ten sposób
<select name="selectbox" onchange="alert(this.text)">
Pokazuje niezdefiniowane. Odkryłem, jak używać DOM, aby uzyskać tekst. Ale chcę to zrobić w ten sposób, mam na myśli używanie właśnie this.value.
javascript
select
Aajahid
źródło
źródło
options
zwraca listęOption
obiektów, co do których nie jestem pewien, są nigdzie podane jako takie same jak<option>
elementy. Lepiej jest wykorzystać uświęconą wiekiemtext
właściwość wybranegoOption
, która na pewno zadziała.Option
przedmioty są tym samym, coHTMLOptionElement
przedmioty. Jeśli sprzeciwiasz się używaniuoptions
, możesz alternatywnie użyćchildren
lubchildNodes
zamiast tego (nie pamiętam dokładnie, który z nich; myślę, że oba działają)options
, aleOption
obiekty są starsze niżHTMLOptionElement
obiekty i nie widziałem specyfikacji, która to nakazujeOption
iHTMLOptionElement
musi być tym samym, nawet jeśli mogą być w większości przeglądarek, które obsługują oba. Chodzi mi o to, że bezpieczniej byłoby nie mieszać tych dwóch stylów. Więc wolałbymthis.options[this.selectedIndex].text
coś opartego na węzłachselectedIndex
, co jest skomplikowane z powodu konieczności odfiltrowania węzłów tekstowych spacji w IE.text
zwraca wartośćinnerHTML
, czy tylko wszystkie węzły tekstowe łącznie?Aby uzyskać wartość wybranej pozycji, możesz wykonać następujące czynności:
this.options[this.selectedIndex].text
Tutaj
options
uzyskuje się dostęp do różnych zSelectedIndex
zaznaczonych, a służy do wyboru wybranego, a następnie jegotext
jest uzyskiwany dostęp do niego.Przeczytaj więcej o wybranym modelu DOM tutaj .
źródło
this.options[this.selectedIndex].value
jest dokładnie taki sam, jakthis.value
przepraszam.selectedIndex
raczej niżSelectedIndex
.this.selectedOptions[0].text
(z oczywistymi rozszerzeniami, jeśli masz wybór wielokrotny).Spróbuj tego kodu:
$("#YourSelect>option:selected").html()
źródło
Po prostu użyj
$('#SelectBoxId option:selected').text();
Aby uzyskać tekst wymieniony na liście$('#SelectBoxId').val();
Aby wybrać wartość indeksuźródło
Wiem, że nikt nie pyta tutaj o rozwiązanie jQuery, ale warto wspomnieć, że z jQuery możesz po prostu poprosić o:
$('#selectorid').val()
źródło
Jeśli chcesz uzyskać wartość, możesz użyć tego kodu dla elementu select z id = "selectBox"
let myValue = document.querySelector("#selectBox").value;
Jeśli chcesz uzyskać tekst, możesz użyć tego kodu
var sel = document.getElementById("selectBox"); var text= sel.options[sel.selectedIndex].text;
źródło