Thanks for all the help. I got it to work. I tried the $(this).next trick before but for some reason it didn't work (I had the hidden text in a separate td). Now it works how I want it except for one small problem.
I decided to change the click to a hover so I now have: $(document).ready(function(){ $('div.hidden').hide(); $('img.hidden').mouseover(function() { $(this).next('div.hidden').show(); }); $('img.hidden').mouseout(function() { window.setTimeout($(this).next('div.hidden').hide(),3000); }); }); The text appears on mouseover and disappears on mouseout, but I want there to be a delay between the time the user moves the mouse out of the image and the hidden text disappearing. What am I doing wrong?