Pregunta

Esto obtiene el valor de lo que esté seleccionado en mi menú desplegable.

document.getElementById('newSkill').value

Sin embargo, no puedo averiguar qué propiedad buscar para el texto que se muestra actualmente en el menú desplegable.Probé "texto" y luego miré W3Escuelas pero eso no tenía la respuesta, ¿alguien aquí lo sabe?

Para aquellos que no están seguros, aquí está el HTML de un cuadro desplegable.

<select name="newSkill" id="newSkill">
    <option value="1">A skill</option>
    <option value="2">Another skill</option>
    <option value="3">Yet another skill</option>
</select>
¿Fue útil?

Solución

Según su código HTML de ejemplo, esta es una forma de obtener el texto mostrado de la opción seleccionada actualmente:

var skillsSelect = document.getElementById("newSkill");
var selectedText = skillsSelect.options[skillsSelect.selectedIndex].text;

Otros consejos

Esto debería devolver el valor de texto del valor seleccionado.

var vSkill = document.getElementById('newSkill');

var vSkillText = vSkill.options[vSkill.selectedIndex].innerHTML;

alert(vSkillText);

Accesorios:@Tanerax por leer la pregunta, saber lo que se preguntó y responderla antes de que otros se dieran cuenta.

Editar:DownModed, porque de hecho leí una pregunta completa y la respondí, es un mundo triste.

Simplemente puedes usar Jquery en lugar de Javascript

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

Prueba esto.

document.getElementById('newSkill').options[document.getElementById('newSkill').selectedIndex].value 

Deberia trabajar

Esto funciona, lo probé yo mismo y pensé en publicarlo aquí en caso de que alguien lo necesite...

document.getElementById("newSkill").options[document.getElementById('newSkill').selectedIndex].text;

Adjunta un evento de cambio a la selección que obtiene el texto para cada opción seleccionada y los escribe en el div.

Puedes usar jQuery de manera muy directa, exitosa y fácil de usar.

<select name="sweets" multiple="multiple">
  <option>Chocolate</option>
  <option>Candy</option>
  <option>Taffy</option>
  <option selected="selected">Caramel</option>
  <option>Fudge</option>
  <option>Cookie</option>
</select>
<div></div>


$("select").change(function () {
  var str = "";

  $("select option:selected").each(function() {
    str += $( this ).text() + " ";
  });

  $( "div" ).text( str );
}).change();

¿Obtiene esto la respuesta correcta?

document.getElementById("newSkill").innerHTML
function getValue(obj)
{  
   // it will return the selected text
   // obj variable will contain the object of check box
   var text = obj.options[obj.selectedIndex].innerHTML ; 

}

Fragmento HTML

 <asp:DropDownList ID="ddl" runat="server" CssClass="ComboXXX" 
  onchange="getValue(this)">
</asp:DropDownList>
    var ele = document.getElementById('newSkill')
    ele.onchange = function(){
            var length = ele.children.length
            for(var i=0; i<length;i++){
                if(ele.children[i].selected){alert(ele.children[i].text)};              
            }
    }   
var selectoption = document.getElementById("dropdown");
var optionText = selectoption.options[selectoption.selectedIndex].text;

Pruebe lo siguiente. Esta es la forma más sencilla y funciona perfectamente.

var newSkill_Text = document.getElementById("newSkill")[document.getElementById("newSkill").selectedIndex];

Aquí tienes un método fácil y breve.

document.getElementById('elementID').selectedOptions[0].innerHTML
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top