隐藏父IF子跨度设置为display:none

时间:2012-02-19 14:25:00

标签: jquery hide

我已经浏览了与隐藏父容器相关的大多数类似的JQuery帖子,但似乎没有一个选项适用于我。

简而言之,我有以下代码

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

*不是我的编码btw :-p

目前我商店的分页div(上面)是空的 - 这是因为没有触发分页以显示上述代码中的上一个和下一个跨度。您可以看到它们的类名称为.disabled,它只是将这些跨度设置为:none。

我想创建一个Jquery函数,当子span.previous和span.next设置为.disabled时隐藏父div #pagination。

感谢您的高级帮助!

3 个答案:

答案 0 :(得分:0)

这是未经测试的:

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

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

答案 1 :(得分: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');​

答案 2 :(得分:0)

你可以做到

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

在这里摆弄http://jsfiddle.net/hwrx2/