Sólo segunda respuesta de Bob es correcta:
$("#sel")[0].selectedIndex
Obras : 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 th opción de correo seleccionado desde la página cargado: http://jsfiddle.net/b9chris/wxeVN/
Se podría aplicar esto como una extensión de 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 está devuelto por .selectedOption()
es la etiqueta de opción real, para que pueda acceder .index
, .value
y .text
- un poco más conveniente que sólo el índice en el uso típico.
Esto confunde la diferencia entre attr y prop. Tenga en cuenta que una vez que cambia el elemento seleccionado en el menú desplegable en este ejemplo, selectedIndex no cambia y es incorrecto: http://jsfiddle.net/b9chris/wxeVN/ –
Esto está mal. 'attr (" selectedIndex ")' no hace nada, necesita 'prop (" selectedIndex ")'. Demostración: http://jsfiddle.net/Nj85e/ –
Nota: mi respuesta fue escrita en 2009, y en el momento en que ** era ** correcta. jQuery ha sufrido cambios desde entonces ... –