2016-11-21 6 views
-1

Я хочу скрыть панель, если она пуста.Как скрыть панельное тело пусто?

Вот пример: BootPly

код Javascript:

$(function() { 
    $('#container').load(function() { 
     if($.trim($(this).contents().find("container").find('panel-body').length) == 0) { 
      $(this).hide(); 
     } 
    }); 

Код HTML:

<div class="container"> 
    <div class="row clearfix"> 
     <div class="col-md-9 column"> 
      <div class="panel panel-primary"> 
       <div class="panel-heading">Content</div> 
       <div class="panel-body fixed-panel"> 
        <div class="form-group"> 

        </div> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 
+0

Вам необходимо убедиться, что событие 'load' запускает ваш код для запуска, а ваши' .find() 'селектора, похоже, отсутствуют' .' перед именами классов. –

ответ

0

Как о чем-то вроде этого? http://www.bootply.com/bKb0isdzKA

$(function() { 
    $('.form-group').each(function() { 
     if ($(this).is(':empty')) { 
      $(this).closest('.container').hide(); 
     } 
    }); 
}); 

У вас было несколько вопросов. Во-первых, вы использовали #container в качестве вашего селектора, несмотря на то, что container является классом. Кроме того, вы проверяли, был ли пуст body-panel, но он содержит дочерний div, поэтому он всегда будет иметь HTML-контент.

Приведенный выше код будет проходить через каждый .form-group и скрыть родительский контейнер, если он пуст.

Если это не совсем то, что вы имели в виду, сообщите мне, и я могу внести коррективы.

+0

Я бы предложил переключить класс 'hidden' на использование' show/hide'. Это гораздо быстрее и удобнее для загрузки, по моему мнению. –

+0

Привет, Санти, не работайте, пожалуйста, проверьте ссылку: http://www.bootply.com/3IZnJQlOqu –

+0

Я поставил изображение, чтобы проверить, продолжать скрываться ... –