jquery - node - Cómo obtener el índice de selección-> etiqueta de opción
jquery node index (8)
El título no coincide con la pregunta ...
Cómo obtener el índice de selección-> etiqueta de opción
option.index // javascript
$(option).prop(''index'') // jquery
índice de selección seleccionada- > etiqueta de opción:
document.getElementById(''sel'').selectedIndex // javascript
<select id="sel">
<option value="123" selected="selected">text1</option>
<option value="44">text2</option>
<option value="882">text3</option>
...
</select>
¿Cómo obtener el índice de la opción seleccionada con jQuery? Puede ser .index(subject)
, pero todas las posibilidades probadas, no funcionaron ...
Índices PS: valor = "123" => 0, valor = "44" => 1, ...
Gracias
Esto lo hará:
$("#sel").attr("selectedIndex")
Mientras escribo esto, dos de las respuestas principales (incluida la respuesta aceptada) son incorrectas a pesar de haber sido señaladas hace casi cinco años. attr("selectedIndex")
no hace nada, porque selectedIndex
es una propiedad en el elemento DOM real, no un atributo HTML. Necesitas usar prop
:
$(this).prop(''selectedIndex'')
Demostración interactiva comparando esto con la versión incorrecta: http://jsfiddle.net/uvwkD/
Puede obtener el índice del elemento en este caso al verificar cuántos elementos hermanos tiene antes el elemento seleccionado:
$(''#sel option:selected'').prevAll().length;
Realmente puedes hacerlo sin jQuery: var sel = document.getElementById( ''sel'' ); var index = sel.selectedIndex;
var sel = document.getElementById( ''sel'' ); var index = sel.selectedIndex;
Sólo la segunda respuesta de Bob es correcta:
$("#sel")[0].selectedIndex
Trabajos: http://jsfiddle.net/b9chris/wxeVN/1/
El uso de .attr()
funciona solo si el usuario (o la restauración de DOM del navegador) no ha cambiado la opción seleccionada desde que se cargó la página: jsfiddle.net/b9chris/wxeVN
Podría implementar esto como una extensión jQuery y obtener un poco más de información en el proceso:
(function($) {
$.fn.selectedOption = function() {
var sel = this[0];
return sel.options[sel.selectedIndex];
};
})(jQuery)
$(''button'').click(function() {
$(''#output'').text(''selected index: '' + $(''select'').selectedOption().index);
});
http://jsfiddle.net/b9chris/wxeVN/102/
Lo que devuelve .selectedOption()
es la etiqueta de opción real, por lo que puede acceder a .index
, .value
y .text
, un poco más conveniente que el índice en el uso típico.
Use la función de índice estándar de jquery como en este ejemplo de código
$("#sel option:selected").index()
$("#sel").attr("selectedIndex")
o
$("#sel")[0] //to get the DOM element
$("#sel")[0].selectedIndex