Jquery - So erhalten Sie das Stilanzeigeattribut "none / block"

81

Gibt es eine Möglichkeit, das Attribut style: display zu erhalten, das entweder none oder block hat?

DIV:

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

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

</div>

Ich weiß, dass es eine Möglichkeit gibt herauszufinden, ob der DIV versteckt ist oder nicht, aber in meinem Fall wird dieser Div dynamisch injiziert, sodass er immer als sichtbar falsch angezeigt wird. Daher kann ich das nicht verwenden:

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

Ich kann das Ergebnis "display: block" erhalten mit:

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

Gibt es eine Möglichkeit, nur den Wert "block" oder "none" zu erhalten, oder gibt es eine bessere / effizientere Möglichkeit, dies zu tun?

Murtaza Mandvi
quelle

Antworten:

125

Du könntest es versuchen:

$j('div.contextualError.ckgcellphone').css('display')
Zwerg
quelle
77

Wenn Sie jquery 1.6.2 verwenden, müssen Sie nur codieren

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

beispielsweise:

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

Das ist die richtige Antwort

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

Sie können auch die folgende Zeile verwenden, um festzustellen, ob es sich um einen Anzeigeblock handelt oder nicht

$('.deal_details').is(':visible')
Seetpal Singh
quelle
2
Sollten Sie nicht '===' anstelle von '==' verwenden, da Sie versuchen, eine Gleichheitsprüfung durchzuführen?
Gmeben
7
Das Überprüfen mit .css ("Anzeige") und .is (": sichtbar") ist nicht dasselbe. Wenn das übergeordnete Element "display: none" hat, werden unterschiedliche Ergebnisse angezeigt. Achtung.
Xecute
3

Meine Antwort

/**
 * 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
quelle
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
quelle