2010-08-15 9 views
51

estoy tratando esto para conseguir la id de cada elemento en un class pero en vez Es alertando a cada nombre de la clase por separado, por lo que para class="test" está alertando: t, e, s, t ... Cualquier consejo sobre cómo llegar cada elemento id que es parte de class es apreciado, ya que no puedo entender esto ... Gracias.jQuery, obtenga ID de cada elemento en una clase usando .each?

$.each('test', function() { 
    alert(this) 
}); 

Respuesta

120

probar esto, reemplazando .myClassName con el nombre real de la clase (pero mantener el punto al comienzo).

$('.myClassName').each(function() { 
    alert(this.id); 
}); 

Así que si la clase es "prueba", que haría $('.test').each(func....

Esta es la forma específica de .each() que itera sobre un objeto jQuery.

El formulario que estaba utilizando itera sobre cualquier tipo de colección. Entonces esencialmente iteraba sobre una matriz de caracteres t,e,s,t.

Usando que forma de $.each(), que tendría que hacerlo de esta manera:

$.each($('.myClassName'), function() { 
    alert(this.id); 
}); 

... que tendrá el mismo resultado que el ejemplo anterior.

+1

gracias .. funciona bien ahora – Rick

+0

@Rick - De nada. Me alegro de que funcione. : o) – user113716

22

patrick dw la respuesta está en lo cierto.

Para patadas y risitas, pensé que podría publicar una forma simple de devolver una matriz de todos los ID.

var arrayOfIds = $.map($(".myClassName"), function(n, i){ 
    return n.id; 
}); 
alert(arrayOfIds); 
+0

De hecho '$ .map()' es muy bueno si se desea una matriz. Aunque si puedo expresar mi sesgo personal, haría 'n.id' en lugar de crear un nuevo objeto jQuery para cada iteración, ya que es mucho más eficiente. Solo pensé en mencionarlo. : o) – user113716

+0

tienes razón patrick. sin necesidad de $() extra. Lo he editado. – jessegavin

Cuestiones relacionadas