I've went with a problem similliar to yours, a guy helped me out $(this).closest('.your-item').attr('id');
Try putting in your div a class named "your-item" like so, class="your- item" and then when you click on your span i think it wold give your div id, just try it :) Example: <div class="your-item" id="thirdArea"> <span id="subSecond"> <ul> <li>First Item</li> <li>Second Item</li> <li>Third Item</li> </ul> </span> </div> On 2 Ago, 20:07, pedalpete <p...@hearwhere.com> wrote: > I've been trying to get a specific parent element traversing up the > DOM until I find it, but it is getting to be some very verbose code, > and I'm thinking there must be a better way. > > I have a bunch of events which is fired on a click, and I am trying to > figure out which of the parent divs was clicked. > > Now I have something like this (this is a simplified version) > <code> > <div id="firstArea"> > <ul> > <li>First Item</li> > <li>Second Item</li> > <li>Third Item</li> > </ul> > </div> > > <div id="secondArea"> > <span id="subSecond"> > <ul> > <li>First Item</li> > <li>Second Item</li> > <li>Third Item</li> > </ul> > </span> > </div> > <div id="thirdArea"> > <span id="subSecond"> > <ul> > <li>First Item</li> > <li>Second Item</li> > <li>Third Item</li> > </ul> > </span> > </div> > </code> > > So, i'm trying to get the id of the div. > I was hoping I could do this > <code> > $(this).parent('div').attr(id); > </code> > but unfortunately that doesn't work as the first parent is not always > a div. > So what I end up with is > <code> > var getParent=$(this).parent().attr(id); > if(getParent=='subSecond'){ > getParent=$(this).parent().parent().attr(id);} > > </code> > > Not the worst code ever, but I think there must be a better way to do > this, and it may get more confusing/verbose as I continue to add > elements and types. > > Is there a better way of doing this?