That seems like a lot of work. Why not $(function(){ /* shorthand for $(document).ready(function(){ */ $('#aboutContent > div').hide(); /* hide all div's */ $(location.hash).show(); /* the hash (with the # sign) is the same as the CSS selector for an ID (that's why it was chosen) */ }
To quote David Mevthin from the jQuery front page, it couldn't be any shorter unless it read your mind! Danny On Oct 22, 9:40 am, stef <[EMAIL PROTECTED]> wrote: > i previously asked about a way to hide and show divs based on the > location hash value. so if the url is domain.com/page.php#contact then > all divs but the contact div should be hidden when coming from an > external page. > > Jorn pointed me to some existing plugins but they went a bit over my > head, so I came up with my own solution, below. > > first i hide all divs inside my div#aboutContent by default. then i > extract the location hash value. next i loop through all divs inside > div#aboutContent as many times as there are nbrs of divs and if the > div id matches the value in the location hash, i make it visible. > > i can link from an external page to my domain.com/page.php#contact and > the relevant div will be shown. i realise this is quite simple ... but > its good enough for me. > > feedback? > > sample html: > > <div id="aboutContent"> > <div id="contact">contact info here</div> > <div id="investors">investor info here</div> > <div id="freebeer">how to get free beer</div> > </div> > > JS: > $(document).ready(function() > { > $("#aboutContent > div").addClass('hide'); > > /* location hash: */ > var locationHash = window.location.hash; > > /* location minus the hash symbol (will extract to 20 chars > after > the # */ > var location = locationHash.substring(1,20); > > /* number of child divs of #aboutContent */ > var divNbrs = $("div#aboutContent > div").length; > > for (count = 0; count < divNbrs; count+=1) > { > var theDiv = $("div#aboutContent > > div:eq("+count+")"); > var divsId = $("div#aboutContent > > div:eq("+count+")").attr('id'); > if(divsId == location){ > theDiv.addClass('show'); > } > } > });