2009-10-24 14 views
33

Pregunta básica de jquery. Tengo un elemento de opción como a continuación.jquery: cómo obtener el valor del atributo id?

<option class='select_continent' value='7'>Antarctica</option> 

jQuery

$(".select_continent").click(function() { 
    alert(this.attr('value')); 
}); 

Esto da un error que dice this.attr no es una función así que no estoy usando "este" correctamente.

¿Cómo puedo alertar a 7?

Respuesta

57

que tiene que hacer:

alert($(this).attr('value')); 
+17

o '$ (this) .val()' – Mottie

+1

Me gusta @Mottie answer better :) ¡Mucho más simple! –

42

Para que coincida con el título de esta pregunta, el valor del atributo id es:

var myId = $(this).attr('id'); 
alert(myId); 

pero, por supuesto, el elemento debe tener ya la Elemento id definido, como:

<option id="opt7" class='select_continent' value='7'>Antarctica</option> 

En la publicación OP, este no era el caso.


Tenga en cuenta que si no va a hacer ninguna otra operación de jQuery en el atributo ID (en esa línea de código) - es decir, si sólo están almacenando el texto devuelto en una variable , js entonces llano es más rápido:

alert( this.id ); 
1
$('.select_continent').click(function() { 
    alert($(this).attr('value')); 
}); 
2

también puede tratar de esta manera

<option id="opt7" class='select_continent' data-value='7'>Antarctica</option> 

jquery

$('.select_continent').click(function() { 
alert($(this).data('value')); 
}); 

Buena suerte !!!!

Cuestiones relacionadas