Determinar si el atributo CSS es un cierto valor?


Me pregunto cómo determinar una sentencia jQuery como esta

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

Básicamente, quiero ser capaz de determinar SI un elemento tiene se está mostrando u ocultando actualmente a través del atributo "display:block"?

Author: Pekka 웃, 2011-05-08

3 answers

Use

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

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

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

Si bien puede confiar en que display proporciona resultados confiables, tenga en cuenta que algunas propiedades CSS no siempre se mostrarán de la manera en que se definieron. Por ejemplo

a { color: red }

Resultará rgb(255,0,0); cuando se le pregunte usando .css().

 50
Author: Pekka 웃,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-08 17:07:29

Puede usar isvisible y también está oculto

if ( $('#test').is(':visible')){
 7
Author: kobe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-08 17:09:07

Creo que la única manera de probar esto es comparándolo con valores reales:

function displayHidden(elem) {
    return $(elem).css('display') === 'hidden';
}
 0
Author: sdleihssirhc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-08 17:08:16