2009-12-09 12 views
70

¿Hay alguna manera de obtener el atributo style: display que tendría none o block?Jquery - Cómo obtener el atributo de visualización de estilo "none/block"

DIV:

<div id="ctl00_MainContentAreaPlaceHolder_cellPhone_input_msg_container" class="Error cellphone" style="display: block;"> 

    <p class="cellphone" style="display: block;">Text</p> 

</div> 

Sé que hay una manera de averiguar si el DIV se oculta o no, pero en mi caso se inyecta de forma dinámica este div por lo que siempre se muestra como visibles falsa por lo tanto no puedo utilizar ese:

$j('.Error .cellphone').is(':hidden') 

estoy en condiciones de obtener el resultado "display: block" usando:

$j('div.contextualError.ckgcellphone').attr('style') 

es T aquí una forma de obtener solo el valor "bloquear" o "ninguno" o ¿existe una forma mejor/más eficiente de hacer esto?

Respuesta

106

Usted podría intentar:

$j('div.contextualError.ckgcellphone').css('display') 
66

Si estás usando jQuery 1.6.2 sólo tiene que codificar

$('#theid').css('display') 

por ejemplo:

if($('#theid').css('display') == 'none'){ 
    $('#theid').show('slow'); 
} else { 
    $('#theid').hide('slow'); 
} 
27

esta es la correcta respuesta

$('#theid').css('display') == 'none' 

También puede utilizar siguiente línea para encontrar si es bloque de visualización o ninguno

$('.deal_details').is(':visible') 
+1

Puesto que usted está tratando de hacer una verificación de la igualdad, no debe ¿Está utilizando '===' en lugar de '=='? – gmeben

+2

Verificar con .css ("display") y .is (": visible") no son las mismas cosas. Si el elemento padre tiene "display: none", dará diferentes resultados. Ten cuidado. – xecute

2

Mi respuesta

/** 
* Display form to reply comment 
*/ 
function displayReplyForm(commentId) { 
    var replyForm = $('#reply-form-' + commentId); 
    if (replyForm.css('display') == 'block') { // Current display 
     replyForm.css('display', 'none'); 
    } else { // Hide reply form 
     replyForm.css('display', 'block'); 
    } 
} 
0
//animated show/hide 

function showHide(id) { 
     var hidden= ("none" == $("#".concat(id)).css("display")); 
     if(hidden){ 
      $("#".concat(id)).show(1000); 
     }else{ 
      $("#".concat(id)).hide(1000); 
     } 
    } 
Cuestiones relacionadas