Jquery - Как получить атрибут отображения стиля «none / block»


81

Есть ли способ получить атрибут style: display, который не имел бы значения 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>

Я знаю, что есть способ узнать, скрыт ли DIV или нет, но в моем случае этот div динамически вводится, поэтому он всегда отображается как видимый ложный, поэтому я не могу это использовать:

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

Я могу получить результат «display: block», используя:

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

Есть ли способ получить только значение «блок» или «нет» или есть лучший / более эффективный способ сделать это?

Ответы:



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);
      }
  }
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.