2014-05-02 68 views
0

我有一個父div和2個嵌套的子div。當第二個子div不包含任何內容時,我想隱藏第一個子div和父div。我想知道如何做到這一點?如果有2個子div存在,隱藏父div?

我有2個子div的原因是因爲我正在創建一個響應式網站,所以一個是完全擴展內容,第二個是將內容居中在頁面中間,第三個是容納包含在內的內容。

 <div id="portfolio"><!--portfolio--> 
     <div id="portfolio-works"><!--portfolio-works--> 
      <div class="portfolio-works-container"><!--portfolio-works-container--> 


      </div><!--/portfolio-works-container--> 
     </div><!--/portfolio-works--> 
    </div><!--/portfoio--> 
+1

你是什麼意思「不包含任何內容」? – ProllyGeek

+0

請分享您迄今嘗試的代碼? –

+0

'.portfolio-img'是你的第二個div嗎? –

回答

1

試試這個:

$('.portfolio-works-container').each(function() { 
    if($(this).find('.portfolio-img').children().length > 0) { 
     $(this).hide(); 
    } 
}); 
0

您可以檢查元素使用empty選擇完全是空的,但空表示沒有空白的。如果有可能會出現空白,則可以使用$.trim()並檢查內容的長度;然後得到它的兄弟姐妹並隱藏它。

演示代碼:

$('.portfolio-img:empty').siblings('.portfolio-text').hide(); 

if (!$.trim($('.portfolio-img').html()).length){ 
    $('.portfolio-img').siblings('.portfolio-text').hide(); 
} 

演示:http://jsfiddle.net/Sf8aH/

這將是更容易,如果你能在元素上設置display:none,而不是檢查其內容。

0

如果這將是你的HTML結構,那麼它有點容易實現:

jQuery(document).ready(function(){ 
    var divGroup = jQuery('.portfolio-works-container > div:nth-child(2)'); 
    if(divGroup.html() == '') { 
     divGroup.parent().toggle(); 
    } 
}); 

的jsfiddle例子:http://jsfiddle.net/laelitenetwork/88DMt/2/

乾杯。