一般:
如何在jQuery中选择元素的第一个匹配祖先?
示例:
拿这个HTML块
<table>
<tbody>
<tr>
<td>
<a href="#" class="remove">Remove</a>
</td>
</tr>
<tr>
<td>
<a href="#" class="remove">Remove</a>
</td>
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
我可以使用此jQuery代码单击"删除"来删除表中的行:
$('.remove').click(function(){
$(this).parent().parent().hide();
return false;
});
Run Code Online (Sandbox Code Playgroud)
这有效,但它非常脆弱.例如,如果有人将其<a>放入a中<div>,它就会破坏.jQuery中是否存在遵循此逻辑的选择器语法:
"这是一个元素,现在找到与某些选择标准相匹配的最接近的祖先并将其返回"
谢谢
我想找findme一个孩子最近的属性链接.startpoint.结构体:
<ul>
<li><a href="#">Point one</a></li>
<li><a href="#" data-findme="yipi">Point one</a>
<ul>
<li><a href="#">Hello</a></li>
<li><a href="#">Hello</a>
<ul>
<li><a href="#" class="startpoint">My Startpoint</a></li>
</ul>
</li>
</ul>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
JavaScript(jQuery):
$(document).ready(function(){
console.log(
$('.startpoint').closest("*[data-findme]")
);
});
Run Code Online (Sandbox Code Playgroud)
由于问题是,该元素data-findme不是父元素而是父元素的另一个子元素,我的示例将找不到该元素.例子:http://jsfiddle.net/rjhgvxoe/
我怎样才能让它发挥作用?