当下一个 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的主要内容,如果未能解决你的问题,请参考以下文章
jquery怎么实现选中一个li然后显示一个div下面的ul