nth node index child jquery indexing

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