2009-04-17 22 views
72

tengo un div:Jquery: ¿Cómo comprobar si el elemento tiene cierta clase css/estilo

<div class="test" id="someElement" style="position: absolute"></div> 

¿Hay alguna manera de comprobar si el elemento determinado:

$("#someElement") 

tiene una especial clase (en mi caso, "prueba").

Alternativamente, ¿hay alguna manera de comprobar que el elemento tiene un cierto estilo? En este ejemplo, me gustaría saber si el elemento tiene "posición: absoluta".

¡Muchas gracias!

+14

no estoy seguro si it'sd la pregunta o la responde que está mal, pero la pregunta tiene style = "test", y la respuesta busca class = "test" – wheresrhys

+1

Supongo que la pregunta es incorrecta, ya que marcó la respuesta incorrecta como correcta; pero independientemente de eso, después de mirar los votos, creo que la mayoría de la gente ha tropezado aquí buscando la respuesta correcta a esta pregunta equivocada ... si tiene algún sentido ... Me refiero a la respuesta de DrJokepu. Es por eso que estoy aquí al menos. – BrainSlugs83

Respuesta

51
if($('#someElement').hasClass('test')) { 
    ... do something ... 
} 
else { 
    ... do something else ... 
} 
+0

muchas gracias. solución perfecta – 0100110010101

+56

Esto no responde la pregunta tal como se lo solicitó; consulte la respuesta de DrJokepu a continuación. –

+0

funciona perfecto para mí gracias :) – Rajnikanth

1

he encontrado una solución:

$("#someElement")[0].className.match("test") 

pero de alguna manera creo que hay una manera mejor!

241

Los estilos CSS son pares clave-valor, no solo "etiquetas". De forma predeterminada, cada elemento tiene un conjunto completo de estilos CSS asignados, la mayoría de ellos está utilizando implícitamente los valores predeterminados del navegador y algunos de ellos se redefinen explícitamente en hojas de estilo CSS.

Para obtener el valor asignado a una entrada de CSS particular de un elemento y lo comparan:

if ($('#yourElement').css('position') == 'absolute') 
{ 
    // true 
} 

Si no vuelve a definir el estilo, obtendrá el valor por defecto del navegador para ese elemento en particular.

+0

wow. no lo sabía gracias! – 0100110010101

+3

¿No hay forma de hacerlo con un selector? – BrainSlugs83

+0

con esto se puede ver cuál es la propiedad real, lo que necesito saber es si esta propiedad se está configurando directamente o si se hereda del estilo CSS/navegador ... ¿es posible? –

12
if ($("element class or id name").css("property") == "value") { 
    your code.... 
} 
0

O, si usted necesita para acceder al elemento que tiene esa propiedad y que no utiliza un id, usted podría ir a esta ruta:

$("img").each(function() { 
     if ($(this).css("float") == "left") { $(this).addClass("left"); } 
     if ($(this).css("float") == "right") { $(this).addClass("right"); } 
    }) 
Cuestiones relacionadas