If you don't want to change your HTML or CSS, change your JQuery to this:
$(document).ready(function () {
$('.showHide').click(function() {
$(this).next().find('li').slideToggle('slow');
});
});
EDIT:
Here is a basic version with valid HTML you should use this and build on from here, or else you could encounter unexpected behavior.
HTML:
<nav id="navMenu">
<ul id="menu">
<li>
<ul>
<li class="showHide">
<h1><a href="#">Clothing</a></h1>
</li>
<li>
<ul class="show">
<li><a href="#">Casual & Party Wear Shirts </a></li>
<li><a href="#">Jeans</a></li>
<li><a href="#">Formal Shirts</a></li>
<li><a href="#">Trousers & Chinos</a></li>
<li><a href="#">T shirts & Polo's</a></li>
<li><a href="#">Cargo, Shorts & 3/4ths</a></li>
<li><a href="#">Ethinic wear</a></li>
</ul>
</li>
<li class="showHide">
<h1><a href="#">Foot Wear</a></h1>
</li>
<li>
<ul class="show">
<li><a href="#">Sport Shoes</a></li>
<li><a href="#">Casual Shoes</a></li>
<li><a href="#">Formal Shoes</a></li>
<li><a href="#">Sandals and Floaters</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
CSS:
nav {
display: block;
position: relative;
width: 100%;
height: auto;
margin: 0 auto;
background: #fff;
color: #000;
}
nav ul#menu {
display: block;
margin: 0;
padding: 0;
list-style: none;
}
nav ul#menu li {
display: block;
}
.show {
display: none;
}
JS:
$(document).ready(function () {
$('.showHide').click(function () {
$(this).next().find('.show').slideToggle('slow');
});
});
http://api.jquery.com/closest/orhttp://api.jquery.com/next/like $(this).next() or change your selector to match only the first element.