2011-05-08 13 views
23

Sólo me preguntaba cómo determinar una declaración de jQuery como estoDeterminar si el atributo CSS es un cierto valor?

if($("#test").css('display', 'block') == true) { 
    return true; 
} 

Básicamente, quiero ser capaz de determinar si un elemento está siendo actualmente ha mostrado u ocultado a través de la "display: block" atributo?

Respuesta

46

Uso

if($("#test").css('display') == 'block') { 

Estoy bastante seguro de .css(), devolviendo un valor calculado, siempre va a devolver un resultado minúsculas - los documentos no dicen nada sobre esto. Para hacer totalmente seguro, usted podría hacer un

if($("#test").css('display').toLowerCase() == 'block') { 

mientras que se puede confiar en display dar resultados fiables, tenga en cuenta que algunas propiedades CSS no siempre se mostrará la forma en que se definieron. Por ejemplo

a { color: red } 

va a salir rgb(255,0,0); cuando se les pregunta usando .css().

+0

Hola Pekka - pregunto por qué esto no lo hace trabajo ? http://jsfiddle.net/eEF9Y/ – Tom

+0

@Tom está comprobando si 'test1' tiene' display: none' que no tiene. ¿Quiere decir 'display! = 'Block''? –

+0

@Pekka - Gracias por la respuesta :) Nah, quería comprobar si #test es bloque - y si es bloque, entonces, ¿muestra test1? – Tom

0

Creo que la única manera de probar esto es mediante la comparación con los valores reales:

function displayHidden(elem) { 
    return $(elem).css('display') === 'hidden'; 
} 
6

Puede utilizar IsVisible y se oculta también

if ($('#test').is(':visible')){ 
+3

Esto funcionará mejor si la visibilidad es lo que quiere determinar, +1 –

Cuestiones relacionadas