Estoy un poco confundido acerca de cómo obtener un índice de una opción seleccionada de un <select>
elemento HTML .
En esta página hay dos métodos descritos. Sin embargo, ambos siempre regresan -1
. Aquí está mi código jQuery:
$(document).ready(function(){
$("#dropDownMenuKategorie").change(function(){
alert($("#dropDownMenuKategorie option:selected").index());
alert($("select[name='dropDownMenuKategorie'] option:selected").index());
});
});
y en html
(...)
<select id="dropDownMenuKategorie">
<option value="gastronomie">Gastronomie</option>
<option value="finanzen">Finanzen</option>
<option value="lebensmittel">Lebensmittel</option>
<option value="gewerbe">Gewerbe</option>
<option value="shopping">Shopping</option>
<option value="bildung">Bildung</option>
</select>
(...)
¿Por qué este comportamiento? ¿Hay alguna posibilidad de que select
no esté "listo" en el momento de asignar su change()
método? Además, cambiar .index()
a .val()
es devolver el valor correcto, así que eso es lo que me confunde aún más.
[name=]
cuando se usa selectid
. Las respuestas[0].selectedIndex
yoption:selected
abajo están bien.Respuestas:
Los primeros métodos parecen funcionar en los navegadores que probé, pero las etiquetas de opción realmente no corresponden a elementos reales en todos los navegadores, por lo que el resultado puede variar.
Simplemente use la
selectedIndex
propiedad del elemento DOM:Actualizar:
Desde la versión 1.6 jQuery tiene el
prop
método que puede usarse para leer propiedades:fuente
[0]
?selectedIndex
propiedad. Agregar[0]
convierte el objeto jquery en un objeto javascript que tenga laselectedIndex
propiedad. Este ejemplo no funcionará sin[0]
selectedIndex
es una propiedad y no hay un atributo correspondiente. Elattr
método podría funcionar para leer la propiedad en versiones anteriores a 1.6, pero no desde esa versión.selectedIndex
no comienza desde 0 con la primera opción?selectedIndex
propiedad está basada en cero. Revisé la documentación e incluso lo intenté yo mismo para estar realmente 100% seguro de esto.Buena manera de resolver esto de manera Jquery
fuente
[0]
respuesta preferida de OP y, como desarrollador de Python, realmente puedo apreciar la legibilidad de esta respuesta.Tengo una solución ligeramente diferente basada en la respuesta del usuario167517. En mi función, estoy usando una variable para la identificación del cuadro de selección al que estoy apuntando.
El índice se devuelve con:
fuente
Puede usar la
.prop(propertyName)
función para obtener una propiedad del primer elemento en el objeto jQuery.Esto mantiene su código dentro del reino jQuery y también evita la otra opción de usar un selector para encontrar la opción seleccionada. Luego puede restaurarlo utilizando la sobrecarga:
fuente
prueba esto
fuente
selectedIndex es una propiedad de selección de JavaScript. Para jQuery puedes usar este código:
fuente
Puede obtener el índice del cuadro de selección utilizando: método .prop () de JQuery
Mira esto :
fuente