JQuery - Jak uzyskać atrybut wyświetlania stylu „none / block”

81

Czy istnieje sposób na uzyskanie atrybutu style: display, który miałby wartość none lub 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, czy nie, ale w moim przypadku ten element div jest dynamicznie wstrzykiwany, więc zawsze pokazuje się jako widoczne fałsz, więc nie mogę tego użyć:

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

Jestem w stanie uzyskać wynik "display: block" używając:

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

Czy istnieje sposób, aby uzyskać tylko wartość „blok” lub „brak”, czy też jest lepszy / wydajniejszy sposób, aby to zrobić?

Murtaza Mandvi
źródło

Odpowiedzi:

125

Możesz spróbować:

$j('div.contextualError.ckgcellphone').css('display')
gnarf
źródło
77

Jeśli używasz jquery 1.6.2, potrzebujesz tylko kodu

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

na przykład:

if($('#theid').css('display') == 'none'){ 
   $('#theid').show('slow'); 
} else { 
   $('#theid').hide('slow'); 
}
raphie
źródło
35

to jest poprawna odpowiedź

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

Możesz również użyć następującego wiersza, aby sprawdzić, czy jest to blok wyświetlania, czy żaden

$('.deal_details').is(':visible')
Seetpal Singh
źródło
2
Skoro próbujesz sprawdzić równość, czy nie powinieneś używać „===” zamiast „==”?
gmeben
7
Sprawdzanie w plikach .css („display”) i .is („: visible”) to nie to samo. Jeśli element nadrzędny ma „display: none”, dadzą różne wyniki. Bądź ostrożny.
xecute
3

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');
    }
}
user2487028
źródło
1
//animated show/hide

function showHide(id) {
      var hidden= ("none" == $( "#".concat(id) ).css("display"));
      if(hidden){
          $( "#".concat(id) ).show(1000);
      }else{
          $("#".concat(id) ).hide(1000);
      }
  }
byrop
źródło