2009-12-09 14 views
70

Czy istnieje sposób, aby uzyskać atrybut style: display, który miałby wartość none lub block?Jquery - Jak uzyskać atrybut wyświetlania stylu "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> 

wiem, że istnieje sposób, aby dowiedzieć się, czy DIV jest ukryty lub nie, ale w moim przypadku to div jest dynamicznie wstrzykuje dlatego zawsze pokazuje się jako widoczny fałszywy więc nie mogę użyć tego:

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

jestem w stanie uzyskać wynik "display: block" przy użyciu:

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

T tutaj sposób na uzyskanie wartości "blok" lub "brak" lub czy istnieje lepszy/bardziej wydajny sposób na zrobienie tego?

Odpowiedz

106

można spróbować:

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

Jeśli używasz jQuery 1.6.2 wystarczy zakodować

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

na przykład:

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

to jest poprawne odpowiedź:

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

Można również użyć następującą linię do znalezienia, jeśli jest to blok wyświetlacza lub brak

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

Ponieważ próbujesz zrobić sprawdzenie równości, nie powinny używasz "===" zamiast "=="? – gmeben

+2

Sprawdzanie za pomocą .css ("display") i .is (": visible") to nie to samo. Jeśli element rodzica ma "display: none", dadzą różne wyniki. Bądź ostrożny. – xecute

2

Moja odpowiedź

/** 
* 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); 
     } 
    } 
Powiązane problemy