2012-02-19 88 views
1

我已經經歷了大多數與隱藏父容器相關的類似JQuery帖子,但沒有任何選項似乎適用於我。隱藏父級如果子跨度設置爲顯示:無

概括地說,我有以下代碼

<div id="pagination" class="pagination"> 
    <span class="previous disabled">« Previous</span> 
    <span class="next disabled">Next »</span> 
</div> 

*不是我的編碼BTW :-P

目前分頁格(上圖)在我的商店是空的 - 這是因爲分頁有未被觸發以顯示上述代碼中的上一個和下一個跨度。你可以看到他們有一個類名.disabled,它只是設置這些跨度顯示:無。

我想創建一個Jquery函數,當子span.previous和span.next被設置爲.disabled時,隱藏父div #pagination。

感謝您的高級幫助!

+1

不能在純CSS來完成。除非父母本身有一些標識符(類或ID) – PeeHaa 2012-02-19 14:27:44

+0

道歉PeeHaa - 這是一個JQuery相關的問題,我標記錯誤。 – 2012-02-20 12:09:12

回答

0

你可以在這裏做

$('.pagination').each(function(){ 
    var $this = $(this); 
    if($('span.next', this).hasClass('disabled') && $('span.previous', this).hasClass('disabled')){ 
     $this.hide(); 
    } 
}); 

小提琴http://jsfiddle.net/hwrx2/

+0

這與我所用的非常接近,除了第二個span標籤的&&外。感謝隊友......非常感謝。 – 2012-02-20 12:38:17

0

這是未經測試:

$(".pagination:has(.previous.disabled):has(.next.disabled)").hide(); 

,如果我不會寫「邏輯」代碼將更改默認
$(".pagination").has(".previous.disabled").has(".next.disabled").hide(); 
0

我的第一種方法:隱藏父,只顯示它如果有任何孩子沒有被禁用。使用jQuery,很容易:

<div id="pagination" class="pagination" style="display:none"> TEST 
    <span class="previous disabled">« Previous</span> 
    <span class="next disabled">Next »</span> 
</div>​ 

$(':has(:not(span.disabled))').css('display', 'block');​