As long as you have a one-to-one relationship between your links and your divs, you don't need to worry about IDs or hrefs, etc. Just use the index position:
<div id="links"> <a href="#">first</a> <a href="#">second</a> <a href="#">third</a> </div> <div id="container"> <div>test1</div> <div>test2</div> <div>test3</div> </div> var links = $('#links a').click(function(){ $('div#container>div').hide().eq(links.index(this)).show(); return false; }); On Mar 14, 7:21 pm, kevinm <sonicd...@gmail.com> wrote: > Thank for the solutions. > > Yeah I almost went old school, for sanity. In the, before I saw this > post I did something with filter and find. But I may use your's, Adam > that is more streamlined. Will have to try and see what happens > > On Mar 14, 9:09 am, "Adam Jessop" <a...@infused-gaming.net> wrote: > > > Do something like: > > > <div id="links"> > > <a href="#firstDiv" id="first">first<a> > > <a href="#secondDiv" id="second">second<a> > > <a href="#thirdDiv" id="third">third<a> > > </div> > > > <div id="container"> > > <div class="content"> > > <div id="firstDiv"></div> > > <div id="secondDiv"></div> > > <div id="thirdDiv"></div> > > </div> > > </div> > > > JS: > > > $(function(ev) { > > > $('#links a').click(function(ev){ > > $('#content div').hide(); > > id = $(this).attr('id'); > > $('#' + id + 'Div').show(); > > ); > > > }); > > > Untested but you get the idea :) > > > -----Original Message----- > > From: jquery-en@googlegroups.com [mailto:jquery...@googlegroups.com] On > > > Behalf Of Paul Hutson > > Sent: 14 March 2009 11:44 > > To: jQuery (English) > > Subject: [jQuery] Re: help with menu and show/hide divs > > > Kevin, > > > You could always go back to basics... i.e. the following (you'll have > > to use your existing hide show code..) - and I know this isn't > > elegant... > > > if (ClickedItem == "firstdiv") > > { > > ShowFirstDiv; > > HideSecondDiv; > > HideThirdDiv; > > } elseif (ClickedItem == "firstdiv") { > > HideFirstDiv; > > ShowSecondDiv; > > HideThirdDiv; > > } else { > > HideFirstDiv; > > HideSecondDiv; > > ShowThirdDiv; > > }; > > > Regards, > > Paul > > > On Mar 14, 4:02 am, kevinm <sonicd...@gmail.com> wrote: > > > I know I am doing something stupid , but can't figure it out. > > > > I have a menu of three items > > > > <a href="#firstDiv">first<a> > > > <a href="#secondDiv">second<a> > > > <a href="#thirdDiv">third<a> > > > > I then have 3 divs > > > > <div id="container"> > > > <div class="content"> > > > <div id="firstDiv></div> > > > <div id="secondDiv></div> > > > <div id="thirdDiv></div> > > > </div> > > > </div> > > > > the first div is shown by default, what I need to do is when menu > > > items are clicked that the div shown (first,second,or third) is hidden > > > and the selected div is shown. I am using the href to determine what > > > div to show. > > > > I know this is an oft asked thing, but for the life of me I always end > > > up with two divs showing instead of one. > > > > Thanks for any insight. > > > Kevin