jQuery-如何获取样式显示属性“无/阻止”


81

有没有一种方法可以获取样式:显示属性,该属性将没有任何属性或没有该属性?

DIV:

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

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

</div>

我知道有一种方法可以确定DIV是否隐藏,但是在我的情况下,该div是动态注入的,因此它始终显示为可见的false,因此我不能使用它:

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

我能够使用以下方法获得结果“ display:block”:

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

有没有办法只获取值“ block”或“ none”,或者有更好/更有效的方法来做到这一点?

Answers:


125

您可以尝试:

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

77

如果您使用的是jQuery 1.6.2,则只需编写代码

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

例如:

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

35

这是正确的答案

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

您还可以使用以下行查找显示块或无显示块

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

2
由于您尝试进行相等性检查,因此您不应该使用'==='而不是'=='吗?
gmeben

7
用.css(“ display”)和.is(“:visible”)进行检查是不一样的。如果父元素具有“ display:none”,则它们将给出不同的结果。小心。
xecute

3

我的答案

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

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);
      }
  }
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.