Esto funciona perfectamente
<select name="selectbox" onchange="alert(this.value)">
Pero quiero seleccionar el texto. Lo intenté de esta manera
<select name="selectbox" onchange="alert(this.text)">
Se muestra indefinido. Descubrí cómo usar DOM para obtener texto. Pero quiero hacer esto de esta manera, me refiero a usar solo this.value.
javascript
select
Aajahid
fuente
fuente

optionsdevuelve una lista deOptionobjetos, que no estoy seguro de que estén especificados en algún lugar para ser lo mismo que los<option>elementos. Es mejor usar latextpropiedad tradicional del seleccionadoOption, que está garantizado para funcionar.Optionobjetos son lo mismo que losHTMLOptionElementobjetos. Si se opone al usooptions, puede usar alternativamentechildreno en suchildNodeslugar (no puedo recordar exactamente cuál; creo que ambos funcionan)options, pero losOptionobjetos son anteriores a losHTMLOptionElementobjetos y no hay ninguna especificación que haya visto que exija esoOptionyHTMLOptionElementdebe ser lo mismo, aunque pueden estar en la mayoría de los navegadores que admiten ambos. Mi punto es que sería más seguro no mezclar los dos estilos. Por lo tanto, preferiríathis.options[this.selectedIndex].texto una cosa basada en nodosselectedIndex, lo cual se complica por la necesidad de filtrar los nodos de texto de espacio en blanco en IE.textdevuelve elinnerHTML, o solo todos los nodos de texto combinados?Para obtener el valor del artículo seleccionado, puede hacer lo siguiente:
this.options[this.selectedIndex].textAquí
optionsse accede a los diferentes de los seleccionados, ySelectedIndexse utiliza para elegir el seleccionado, luegotextse accede a él.Lea más sobre el DOM seleccionado aquí .
fuente
this.options[this.selectedIndex].valuees exactamente lo mismo quethis.value, lo siento.selectedIndexlugar deSelectedIndex.this.selectedOptions[0].text(con extensiones obvias si tiene una selección múltiple).Pruebe este código:
$("#YourSelect>option:selected").html()fuente
Solo usa
$('#SelectBoxId option:selected').text();Para obtener texto como se indica$('#SelectBoxId').val();Para obtener el valor de índice seleccionadofuente
Sé que nadie está pidiendo una solución de jQuery aquí, pero valdría la pena mencionar que con jQuery solo puede solicitar:
$('#selectorid').val()fuente
Si desea obtener el valor, puede usar este código para un elemento de selección con id = "selectBox"
let myValue = document.querySelector("#selectBox").value;Si desea obtener el texto, puede usar este código
var sel = document.getElementById("selectBox"); var text= sel.options[sel.selectedIndex].text;fuente