<a href="javascript:(void);" id="lnkP">show all children</a>
<a href="javascript:(void);" id="lnkC1">hide child 1</a>
<a href="javascript:(void);" id="lnkC2">hide child 2</a>
<div id="p" style="display:none;">
<div id="c1">child 1</div>
<div id="c2">child 1</div>...
</div>
$("#lnkP").click(function(){
$("#p").children().show(); //seems there's a problem here...
});
$("#lnkC1").click(function(){
$("#c1").hide();
});
$("#lnkC2").click(function(){
$("#c2").hide();
});
jsFiddle:http://jsfiddle.net/CBGsF/1/
我想做的是:
p
是父容器show all children
链接,显示
{strong>所有儿童div 在p
lnkC1
或lnkC2
隐藏
个别儿童div 但似乎我没有让.children()
正常工作。那么如何解决呢?有什么想法吗?
答案 0 :(得分:4)
由于父级(在您的情况下为#p
)有display:none
,因此其子级将不可见。
您需要先显示父级,
$("#p")
.show()
.children().show();
(jQuery的链接,非常有帮助)
请尝试摆脱内联样式(一段时间后无法管理),尽可能多地使用类。
你可以在css中有一个班级,
.displayNone
{
display: none;
}
.displayBlock
{
display: block;
}
然后使用jquery方法.removeClass()
,.addClass()
或.toggleClass()
来显示/隐藏您的元素。
这只是一个建议:)
答案 1 :(得分:2)
您还需要显示#p
更新了小提琴:http://jsfiddle.net/CBGsF/7/
$("#lnkP").click(function(){
$("#p").show().children().show(); //Add show() before children.show call
});
$("#lnkC1").click(function(){
$("#c1").hide();
});
$("#lnkC2").click(function(){
$("#c2").hide();
});
答案 2 :(得分:1)
更新了小提琴:http://jsfiddle.net/CBGsF/5/
$("#lnkP").click(function(){
$("#p").show();
$("#p").children().show();
});
$("#lnkC1").click(function(){
$("#c1").hide();
});
$("#lnkC2").click(function(){
$("#c2").hide();
});
答案 3 :(得分:1)
父元素设置为“显示”:“无”这是问题
$("#p").css("display","block"); //is required in show all anchor click
检查小提琴
由于
答案 4 :(得分:0)
(代表问题作者发布的解决方案)。
我认为eb deploy
也会搜索不可见的节点。好吧,我错了。