2009-12-09 13 views
70

C'è un modo per ottenere lo stile: attributo di visualizzazione che non avrebbe né nessuno né un blocco?Jquery - Come ottenere l'attributo di visualizzazione dello stile "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> 

So che c'è un modo per scoprire se il DIV è nascosto o meno, ma nel mio caso questo div viene iniettato in modo dinamico in modo che mostra sempre come visibile falso quindi non posso utilizzare tale:

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

sono in grado di ottenere il risultato "display: block" utilizza:

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

T qui un modo per ottenere solo il valore "block" o "none" o c'è un modo migliore/più efficiente per farlo?

risposta

106

Si potrebbe provare:

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

Se stai usando jQuery 1.6.2 avete solo bisogno di codificare

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

ad esempio:

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

questa è la corretta answer

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

È inoltre possibile utilizzare seguente riga da trovare se si tratta di blocco di visualizzazione o nessuno

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

Dal momento che si sta tentando di fare un controllo di uguaglianza, non dovrebbe stai usando '===' invece di '=='? – gmeben

+2

Il controllo con .css ("display") e .is (": visible") non sono le stesse cose. Se l'elemento genitore ha "display: none", darà risultati diversi. Stai attento. – xecute

2

La mia risposta

/** 
* 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); 
     } 
    } 
Problemi correlati