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?

Reply via email to