<ul><li><div><div><span id="thisid"></span></div></div></li></ul>
$('#thisid').parent('li');
that obviously doesn't work, but how do I grab the li element? I don't want to use:
$('#this').parent().parent().parent();
I don't want to use it, because it can happen that there is just one div element, instead of two. In this case I would grab the ul element instead of the li element.
or if you only want the first one:
Note that if you only want the first
<li>
element in the ancestry, you should useclosest()
:Should do it. This will give you the first (
:eq(0)
) parent that matches being the tag you're searching for.I prefer the 'closest' than 'parents'.
Parents travel up the DOM tree to the document's root element, adding each ancestor element to a temporary collection; it then filters that collection based on a selector if one is supplied.
where
Closest Travel up the DOM tree until it finds a match for the supplied selector.
Most important what they give in result:
Praents: Returned jQuery object contains zero or more elements for each element in the original set, in reverse document order.
Closest: Returned jQuery object contains zero or one element for each element in the original set, in document order
Follow this Link
http://api.jquery.com/has/
Simple, use
parents()