2011-03-29 19 views
36

Hola Stackoverflow Comunidad,jQuery: conseguir Identificación del selector de clase

difícil de explicar, pero ...

¿Hay alguna manera de que puedo conseguir el id de un elemento de algo así como

<a href="#" class="test" id="test_1">Some text</a> 
<a href="#" class="test" id="test_2">Some text</a> 
<a href="#" class="test" id="test_3">Some text</a> 

y luego ato

$ ('test')

así que cuando hago clic en uno de los elementos recupero la identificación?

Avísame si necesito explicarte más.

Gracias mucho en avanzado.

Respuesta

71

Doh .. Si consigo que la derecha, debe ser tan simple como:

$('.test').click(function() { 
    alert(this.id); 
}); 

Usted puede simplemente acceso la propiedad Identificación sobre el nodo DOM subyacente , dentro del controlador de eventos .

+1

PD: También combiné .each y resolví mi problema :) –

34

Utilice el método "attr" en jquery.

$('.test').click(function(){ 
    var id = $(this).attr('id'); 
}); 
+1

La pregunta subyacente: una vez que tienes 'this', realmente no necesitas el' id', suponiendo que el OP intenta encontrar el elemento por su ID, en lugar de la ID por el elemento ... – Kobi

+0

Eso es derecho. Sin embargo, es posible que desee mostrar el nombre de la identificación. – benck

+0

Estoy de acuerdo con ambos, ¡todo depende de su tarea particular! :) –

6

Cuando se agrega un evento de clic this, devuelve el elemento que se ha hecho clic. Entonces puedes usar this.id;

$(".test").click(function(){ 
    alert(this.id); 
}); 

Ejemplo: http://jsfiddle.net/jonathon/rfbrp/

2
$(".class").click(function(){ 
    alert($(this).attr('id')); 
}); 

sólo en el botón jQuery clic podemos hacer esta clase debe ser escrito allí

2

A partir de jQuery 1.6, usted podría (y algunos dirían que debe) utilizar .prop en lugar de. attr.

$('.test').click(function(){ 
    alert($(this).prop('id')); 
}); 

Se explica en este post: .prop() vs .attr()

0

nada de este ejemplo, funciona para mí

for (var i = 0; i < res.results.length; i++) { 
     $('#list_tags').append('<li class="dd-item" id="'+ res.results[i].id + '"><div class="dd-handle root-group">' + res.results[i].name + '</div></li>'); 
} 

    $('.dd-item').click(function() { 
    console.log($(this).attr('id')); 
    }); 
1

tener cuidado si se utilizan funciones de dirección en grasa como se puede obtener indefinido para este .id Perdió 10 minutos hoy preguntándose qué demonios estaba pasando

+0

¿Qué es Fat Arrow Functions? –

+1

https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Functions#Arrow_functions – nasoj1100

+0

gracias amigo! ¡Apreciado enormemente! –