172 votos

Determinar si un elemento tiene una clase CSS con jQuery

Estoy trabajando con jQuery y mirando para ver si hay una manera más fácil de determinar si el elemento tiene una clase CSS específica asociada a ella.

Tengo el id del elemento, y la clase CSS que yo estoy buscando. Sólo tengo que ser capaz de, en una sentencia if, hacer una comparación basada en la existencia de esa clase en el elemento.

237voto

eyelidlessness Puntos 28034

El uso de la hasClass método:

jQueryCollection.hasClass(className);

o

$(selector).hasClass(className);

El argumento es (obviamente) una cadena que representa la clase a la que se la comprobación y devuelve un valor booleano (por lo que no admite el encadenamiento como la mayoría de los métodos jQuery).

Nota: Si se pasa un className argumento que contiene espacios en blanco, que se corresponde literalmente en contra de la colección de elementos' className cadena. De modo que si, por ejemplo, tiene un elemento,

<span class="foo bar" />

entonces esto va a devolver true:

$('span').hasClass('foo bar')

y esto volverá false:

$('span').hasClass('bar foo')
$('span').hasClass('foo  bar')

20voto

Javier Puntos 33134

de la FAQ

 elem = $("#elemid");
if (elem.is (".class")) {
   // whatever
}
 

o:

 elem = $("#elemid");
if (elem.hasClass ("class")) {
   // whatever
}
 

11voto

VinnyG Puntos 2996

En cuanto a la negación, si quieres saber si un elemento tiene una clase no puede simplemente hacer como Mark dijo.

 if (!currentPage.parent().hasClass('home')) { do what you want }
 

3voto

Ismael Miguel Puntos 231

Sin jQuery:

 var hasclass=!!(' '+elem.className+' ').indexOf(' check_class ')+1;
 

O:

 function hasClass(e,c){
    return e&&(e instanceof HTMLElement)&&!!((' '+e.className+' ').indexOf(' '+c+' ')+1);
}
/*example of usage*/
var has_class_medium=hasClass(document.getElementsByTagName('input')[0],'medium');
 

Esto es mucho más rápido que jQuery!

0voto

Kedar.Aitawdekar Puntos 391

Compruebe la página oficial FAQ jQuery:

¿Cómo puedo comprobar si un elemento tiene clase perticular o no

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: