【问题标题】:hide previous div when next div's display is none or hidden in jQuery当下一个 div 的显示不显示或在 jQuery 中隐藏时隐藏上一个 div
【发布时间】:2012-07-02 12:44:13
【问题描述】:

当我的下一个 div 不显示或隐藏时,是否可以隐藏上一个 div。

<div id="first"> Hello </div>
<div id="second">
  <div id="secondchild1" style="display:none"> How are you.? </div>
  <div id="secondchild2" style="display:none"> Nice to meet you </div>
</div>

现在,当第二个中的所有子 div 都被隐藏或者它们的显示都不显示时,我需要先隐藏。

即使显示了其中一个子 div,也应该显示第一个。

提前致谢。

【问题讨论】:

标签: jquery html jquery-selectors next


【解决方案1】:

遍历#second div 内的所有div 以检查当前子div 是否可见。如果它可见退出函数并将布尔值设置为 true。最后,根据布尔值显示或隐藏#first div。

var showFirst = false;
$('#second div').each(function() {
    if ($(this).is(':visible')) {
        showFirst = true;
        return false;
    }
});
showFirst ? $('#first').show() : $('#first').hide();​

JSFiddle
http://jsfiddle.net/Az3aW/

【讨论】:

    【解决方案2】:
    if($("#second").children().css("display") != "none")
    {
        $("#first").css("display", "none");
    }
    

    【讨论】:

      【解决方案3】:
      $('#second').children().each(function(){
          if($(this).css('display') == 'none') $('#first').hide();
      });
      

      当你得到一个显示时,没有隐藏

      【讨论】:

      • 这不起作用,因为如果最后一个孩子有display: none,它会隐藏#first div 元素
      • @micadelli ops:我没有考虑问题的最后一部分(“当显示一个子 div 时,第一个也应该显示”),您的解决方案有效 ;-)跨度>
      猜你喜欢
      • 2015-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-25
      相关资源
      最近更新 更多