How To Select First Ancestor That Matches A Selector?
Posted
by Zach
on Stack Overflow
See other posts from Stack Overflow
or by Zach
Published on 2010-05-19T15:38:07Z
Indexed on
2010/05/19
15:40 UTC
Read the original article
Hit count: 161
jQuery
|jquery-selectors
General:
How can I select the first matching ancestor of an element in jQuery?
Example:
Take this HTML block
<table>
<tbody>
<tr>
<td>
<a href="#" class="remove">Remove</a>
</td>
</tr>
<tr>
<td>
<a href="#" class="remove">Remove</a>
</td>
</tr>
</tbody>
</table>
I can remove a row in the table by clicking "Remove" using this jQuery code:
$('.remove').click(function(){
$(this).parent().parent().hide();
return false;
});
This works, but it's pretty fragile. If someone puts the <a>
into a <div>
, for example, it would break. Is there a selector syntax in jQuery that follows this logic:
"Here's an element, now find the closest ancestor that matches some selection criteria and return it"
Thanks
© Stack Overflow or respective owner