Estoy trabajando con jQuery y estoy buscando para ver si hay una manera fácil de determinar si el elemento tiene una clase CSS específica asociada.
Tengo la identificación del elemento y la clase CSS que estoy buscando. Solo necesito poder, en una declaración if, hacer una comparación basada en la existencia de esa clase en el elemento.
javascript
jquery
css
Mitchel Sellers
fuente
fuente
Respuestas:
Usa el
hasClass
método:o
El argumento es (obviamente) una cadena que representa la clase que está verificando, y devuelve un valor booleano (por lo que no admite el encadenamiento como la mayoría de los métodos jQuery).
Nota: Si pasa un
className
argumento que contiene espacios en blanco, se comparará literalmente con laclassName
cadena de elementos de la colección . Entonces, si, por ejemplo, tienes un elemento,entonces esto devolverá
true
:y estos volverán
false
:fuente
de las preguntas frecuentes
o:
fuente
En cuanto a la negación, si desea saber si un elemento no tiene una clase, simplemente puede hacer lo que dijo Mark.
fuente
Sin jQuery:
O:
¡Esto es MUCHO más rápido que jQuery!
fuente
...&&!!((' '+e.classname+' ').indexOf(' '+c+' ')+1)
, y no solo&&!(' '+e.classname+' ').indexOf(' '+c+' ')
?indexOf
rendimiento-1
es que la clase no existe. Si lo hago!!-1
, lo seríatrue
. Como lo estoy haciendo!!-1+1
, será falso. Una mejor manera sería...&&!!~(' '+e.className+' ').indexOf(' '+c+' ')
, pero no lo recordaba en ese momento....&&~(' '+e.className+' ').indexOf(' '+c+' ')
En aras de ayudar a cualquiera que aterrice aquí pero en realidad estaba buscando una forma gratuita de jQuery de hacer esto:
fuente
Consulte la página oficial de preguntas frecuentes de jQuery:
¿Cómo pruebo si un elemento tiene clase perticular o no?
fuente
fuente
En mi caso, utilicé el 'es' una función jQuery, tenía un elemento HTML con diferentes clases de CSS añadidas, estaba buscando una clase específica en el medio de estas, así que utilicé el "es" una buena alternativa para verificar una clase agregada dinámicamente a un elemento html, que ya tiene otras clases css, es otra buena alternativa.
ejemplo simple:
ejemplo avanzado:
fuente