2011-02-08 19 views
34

Tengo numerosos botones en mi página con los mismos nombres de clase. Sin embargo, estos botones tienen diferentes ID. Cómo hago esto:jQuery find ID del botón presionado por clase

$(".vote").click(function(){ 
    var id = $(this).{ID OF CLICKED BUTTON}; 
}); 

¿Cómo puedo hacer que este pseudo código funcione?

Gracias

+1

WOW, casi 6 respuestas idénticas :) sí – benhowdle89

+2

, pero solo uno de ellos tiene razón. – Alnitak

+0

"Derecha" o "Mejor"? No llegaría tan lejos como para usar términos como "incorrecto" o "correcto" cuando se trata de un conjunto de soluciones, especialmente cuando aquellos que están respondiendo están en diferentes niveles de habilidad dentro de sus carreras. :) – CodeBreaker

Respuesta

68
$(".vote").click(function(){ 
    var id = this.id; 
}); 

El ID es accesible directamente desde el elemento. No hay absolutamente ninguna necesidad de usar un método jQuery.

+2

Creo que quería decir "no es necesario" :-) (SO no me permitirá hacer una edición tan pequeña) – tufelkinder

+0

@tufelkinder Hice la edición requerida ... – Alnitak

18

Con objeto jQuery (no es necesario)

$(".vote").click(function(){ 
    var id = $(this).attr('id'); 
}); 


Sin objeto jQuery (más rápido)

$(".vote").click(function(){ 
    var id = this.id 
}); 
-1

Usted podría utilizar

var id = $(this).attr('id'); 
+1

-1 por '$ (esto). attr ('id') 'en lugar de' this.id' – Alnitak

-1

Usín attr:

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

.attr le permite obtener atributos de etiqueta html por su nombre.

0

Es posible que desee ver en esto:

$("input").click(function (event) { 
       try { 
        var urlid = $(this).attr('id') 
        var isclass = $(this).attr('class') 
        if (isclass == "classname") { 
         alert(urlid); 

         event.preventDefault(); 
        } 
       } 
       catch (err) { 
        alert(err); 
       } 
      }); 
+1

Me gustaría -2 si pudiera, una vez para '$ (this) .attr ('id')' y otra para reemplazar un selector de clase perfectamente bueno ('.vote') con un cheque frágil para un valor de clase muy específico que se romperá si el elemento alguna vez recibe dos clases. – Alnitak

0

uso esto:

var id = $(this).attr('id'); 
+0

¿miró el título? JQuery para encontrar ID .... – m0g3

+0

Sí, lo vi. Por supuesto, use jQuery para el manejador de eventos, pero por favor no lo use solo para sacar 'this.id' dentro del manejador. – Alnitak

0

Creo que esto también funciona

$("body").on("click",".vote",function(){ 
    var id = this.id; 
}); 
+0

Por favor, trate de evitar solo el código de dumping como una respuesta y trate de explicar lo que hace y por qué. Es posible que su código no sea obvio para las personas que no tienen la experiencia de codificación relevante. – Frits

Cuestiones relacionadas