Obtenga la identificación de la opción seleccionada con jQuery

80

Estoy tratando de usar jQuery para hacer una solicitud ajax basada en una opción seleccionada.

¿Existe una forma sencilla de recuperar la identificación de la opción seleccionada (por ejemplo, "id2") usando jQuery?

<select id="my_select">
   <option value="o1" id="id1">Option1</option>
   <option value="o2" id="id2">Option2</option>
</select>


$("#my_select").change(function() {
    //do something with the id of the selected option
});
botmsh
fuente

Respuestas:

215

Puede obtenerlo usando el :selectedselector , así:

$("#my_select").change(function() {
  var id = $(this).children(":selected").attr("id");
});
Nick Craver
fuente
¿Cómo hago para aplicar su solución en javascript puro?
Leslie Nyahwa
23

var id = $(this).find('option:selected').attr('id');

entonces haces lo que quieras con selectedIndex

He reeditado mi respuesta ... ya que selectedIndex no es una buena variable para dar un ejemplo ...

Mihai Iorga
fuente
2 comentarios aquí, ya tiene el elemento DOM thisdentro de un controlador de eventos, no es necesario realizar una búsqueda nuevamente ... y es posible que desee elegir otro nombre de variable, selectedIndexsería especialmente inexacto aquí :)
Nick Craver
sí ... lo siento ... tenía prisa ... y la variable selectedIndex estaba en la mano ... por supuesto que no necesita pasar de nuevo ... lo rehacer
Mihai Iorga
Personalmente, elijo esta opción porque no requería una función
.change
20
$('#my_select option:selected').attr('id');
nada salvaje
fuente
5

La forma más sencilla de hacerlo es var id = $ (this) .val (); desde dentro de un evento como el cambio.

jk121960
fuente