当下一个 div 的显示不显示或在 jQuery 中隐藏时隐藏上一个 div

Posted

技术标签:

【中文标题】当下一个 div 的显示不显示或在 jQuery 中隐藏时隐藏上一个 div【英文标题】:hide previous div when next div's display is none or hidden in jQuery 【发布时间】: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,也应该显示第一个。

提前致谢。

【问题讨论】:

好的,但我们不会为您执行此操作,请查看此帖子:mattgemmell.com/2008/12/08/what-have-you-tried 【参考方案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();​

JSFiddlehttp://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 时,第一个也应该显示”),您的解决方案有效 ;-)跨度>

以上是关于当下一个 div 的显示不显示或在 jQuery 中隐藏时隐藏上一个 div的主要内容,如果未能解决你的问题,请参考以下文章

超出div部分的内容不显示怎么办

jquery怎么实现选中一个li然后显示一个div下面的ul

怎样用Jquery 显示和隐藏div

jQuery 或 PHP - 如果启用/禁用另一个 DIV,则显示/隐藏 DIV 或 LI

如何用jquery来控制div的显示与隐藏

div 的显示隐藏问题