There are no siblings in your anchor elements, so they are all indexes 0. They are all nested in their own <ul> , which, if I am not mistaken, is invalid markup without including <li> around the anchor.
I would change your HTML to this:
<div id="nav"> <ul> <li><a href="#">Link 1</a></li> <li><a href="#">Link 2</a></li> <li><a href="#">Link 3</a></li> <li><a href="#">Link 4</a></li> </ul> </div> <div class="parent"> <div class="a"> <p>this is a</p> </div> <div class="b"> <p>this is b</p> </div> <div class="c"> <p>this is c</p> </div> <div class="d"> <p>this is d</p> </div> </div>
And you js to this:
$('.parent div').hide(); $('#nav a').click(function() {
Working example
source share