jQuery 父选择器
Posted
技术标签:
【中文标题】jQuery 父选择器【英文标题】:jQuery parent selectors 【发布时间】:2011-03-21 01:06:53 【问题描述】:是否有一个 可以遍历 DOM 直到找到第一个匹配项?
例如:
<tr>
<td>
<div id="foo">hello!</div>
</td>
</tr>
从我正在使用的 div 中查找行:
$('#foo').parent().parent();
感觉应该能写出类似的东西
$('#foo').firstParent('tr');
但我在文档中找不到任何此类功能。
【问题讨论】:
【参考方案1】:您可以为此使用.closest()
:
$('#foo').closest('tr');
如果有帮助,有一个专门用于此的类别,可将您未来的搜索范围缩小到:Tree Traversal
【讨论】:
感谢和欢呼树遍历链接。我永远不会发现,这似乎是一个名字很糟糕的函数恕我直言。 @fearofawhackplanet - 当你搜索 API 时:api.jquery.com 找到一个你知道在同一区域的函数,在右边它会有指向它所属类别的链接,这通常是最快的路线:)【参考方案2】:$(element).parents('TR:first');
编辑:或者尼克在下面说的 - 忘了那个傻瓜。
【讨论】:
+1 - 这是.closest('tr')
的长期等价物,所以肯定是一个有效的方法:)【参考方案3】:
$('#foo').parent('tr')
【讨论】:
这并不像大多数人期望的那样,它选择父级如果它是<tr>
,如果它不是<tr>
,你会得到一个空集。选择器是一个过滤器,而不是一个搜索词,它相当于该步骤的.parent().filter('tr')
:)以上是关于jQuery 父选择器的主要内容,如果未能解决你的问题,请参考以下文章