web-dev-qa-db-fra.com

Jquery - Comment obtenir l'attribut d'affichage de style "none / block"

Existe-t-il un moyen d’obtenir le style: attribut display qui n’aurait aucun effet ou bloqué?

DIV:

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

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

</div>

Je sais qu'il existe un moyen de savoir si la DIV est masquée ou non, mais dans mon cas, cette div est injectée de manière dynamique, de sorte qu'elle s'affiche toujours comme visible, donc je ne peux pas l'utiliser:

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

Je peux obtenir le résultat "display: block" en utilisant:

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

Existe-t-il un moyen d'obtenir uniquement la valeur "block" ou "none" ou existe-t-il un moyen meilleur/plus efficace de le faire?

77
Murtaza Mandvi

Tu pourrais essayer:

$j('div.contextualError.ckgcellphone').css('display')
118
gnarf

Si vous utilisez jquery 1.6.2, vous devez seulement coder

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

par exemple:

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

c'est la bonne réponse

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

Vous pouvez également utiliser la ligne suivante pour déterminer s’il s’agit d’un bloc d’affichage ou aucun.

$('.deal_details').is(':visible')
32
Seetpal Singh

Ma réponse

/**
 * 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');
    }
}
3
user2487028
//animated show/hide

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