2010-05-12 8 views
6

Dado un div tales como:attr de jQuery - devolver múltiples clases no sólo la primera

<div class="widget block dock clock">yada yada</div> 

me gustaría ser abe utilizar jQuery $(div).attr('class');

para encontrar todas las clases, pero la JQUERY .attr solo widget de retorno. ¿Hay alguna forma con JQUERY para devolver todas las clases definidas para el elemento?

Gracias

+2

jQuery 'attr' debe devolver toda la cadena. ¿Estás seguro de que tu código es correcto? –

+0

Ustedes rock - thxs – AnApprentice

Respuesta

15

lo que actualmente va a trabajar, here's a quick demo:

alert($("div").attr("class"));​ //alerts "widget block dock clock" 

algo a tener en cuenta es que .attr() rendimientos que atribuyen en el primer elemento emparejado, a partir de los documentos:

Es importante tener en cuenta que el método .attr() obtiene el valor del atributo para solo el primer elemento en el conjunto combinado. Para obtener el valor de cada elemento individualmente, debemos confiar en un constructo de bucle como el método .each() de jQuery.

Así, por ejemplo, algo como esto:

<div class="widget">yada yada</div> 
<div class="widget block dock clock">yada yada</div>​ 

serían solamente "widget" alerta, ya que es la clase del elemento coincidente primera.

2

.attr ('clase') devolverá todas las clases definidas para el elemento. El estilo visual no solo está definido por las clases sino también por las propiedades de css. También puede ser que desee sondear con css ('param-name')

5

Nick menciona el uso each() ...

... pero. ..an manera más fácil podría ser para iterar a través de .split():

(this).attr("class").split(" ") 

..., entonces sólo están tratando con un plain old javascript string array

Cuestiones relacionadas