2010-05-21 28 views
6

Supongamos que tengo un elemento como este:Cómo obtener el nombre de la clase usando jQuery

<div id="dv" class="red green blue">Something Here !!</div> 

que utiliza esto:

alert($('#dv').attr('class')); 

pero me da los tres al mismo tiempo, que necesita de forma individual probablemente almacenado en una matriz.

¿Cómo obtengo cada uno de esos nombres de clase usando jquery? Debería ser simple, ¿verdad?

Respuesta

14
var classNames = $('#dv').attr('class').split(' '); 

si sólo necesita saber si un elemento posee una clase que usted podría querer usar

if($('#dv').is('.green')){ 
    alert('its green!'); 
} 

o

if($('#dv').hasClass('green')){ 
    alert('its green!'); 
} 

que es una función derivada. Mantener la atención a los diferentes notación

".className" y sólo 'className'

3

La clase es un atributo para que pueda hacer var classname=$("#dv").attr("class") a continuación, puede dividirlo en una matriz con var array=classname.split(" ");

+0

he actualizado mi respuesta, comprobar PLZ –

+0

Actualizado la respuesta – mck89

1

uso de este

alert($('#dv').attr('class')); 
+0

He actualizado mi respuesta, cheque por favor, –

8

Hay algunas maneras en función de su objetivo (¿verdad realidad necesita una matriz, que podría ser un método más rápido!).

para obtener una variedad de las clases de uso .attr() y .split():

$('#dv').attr('class').split(' ') == ['red', 'green', 'blue'] 

Para obtener la cadena literal utilizar .attr():

$('#dv').attr('class') == 'red green blue' 

para comprobar si hay un uso clase .hasClass():

$('#dv').hasClass('red') == true 
+0

+1 para 'hasClass', que es más probable que el OP necesite si está tratando de dividir el atributo de clase en una matriz. –

+0

@Andy E's head - Considerando que el ID es "dv", y las clases son "rojo, verde, azul", me pregunto si el atributo de clase se está utilizando como almacenamiento para valores RGB. De cualquier manera, +1 desde que Nick cumplió con su estándar normal cubriendo las bases. – user113716

1

con attr() puede establecer o recuperar cualquier atributo que desee. Si tiene más de una clase, puede dividir la cadena que attr le devuelve con split("separator"). Split te devuelve una matriz. $.each(array, function(i, data){}) le permite hacer algo para cada valor de una matriz. Si a esto le sumamos este es el resultado:

$.each($("#dv").attr("class").split(" "), function(i, data) { 
    alert(data) 
}) 

Y aquí una demostración con su código: http://jsfiddle.net/Cq5JD/

Cuestiones relacionadas