<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/
What I am trying to do is:
pis a parent container- click
show all childrenlink, display
all child divs underp - click
lnkC1orlnkC2to hide
individual child div
But it seems that I didn’t get .children() working correctly. So how to fix it? Any ideas?
Since the parent (
#pin your case) has adisplay:none, it’s children won’t be visible.You’ll need to show the parent first,
(jQuery’s chaining, very helpful)
Please try and get rid of the inline styling (it gets unmanageable after a while), use classes as much as possible.
You can have a class in css,
And then use jquery methods
.removeClass(),.addClass()or.toggleClass()to show/hide your elements.This is just a recommendation 🙂
Test link: http://jsfiddle.net/CBGsF/8/