Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
48
rated 0 times [  51] [ 3]  / answers: 1 / hits: 27553  / 12 Years ago, fri, december 7, 2012, 12:00:00
<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:




  1. p is a parent container

  2. click show all children link, display
    all child divs under p

  3. click lnkC1 or lnkC2 to hide
    individual child div



But it seems that I didn't get .children() working correctly. So how to fix it? Any ideas?


More From » jquery

 Answers
9

Since the parent (#p in your case) has a display:none, it's children won't be visible.



You'll need to show the parent first,



$(#p)
.show()
.children().show();


(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,



.displayNone
{
display: none;
}
.displayBlock
{
display: block;
}


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/


[#81563] Thursday, December 6, 2012, 12 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
travion

Total Points: 137
Total Questions: 96
Total Answers: 103

Location: India
Member since Wed, Aug 4, 2021
3 Years ago
travion questions
Mon, Dec 16, 19, 00:00, 5 Years ago
Sat, Oct 19, 19, 00:00, 5 Years ago
Fri, Sep 20, 19, 00:00, 5 Years ago
Wed, Nov 14, 18, 00:00, 6 Years ago
Sun, Oct 28, 18, 00:00, 6 Years ago
;