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')

【讨论】:

这并不像大多数人期望的那样,它选择父级如果它是&lt;tr&gt;,如果它不是&lt;tr&gt;,你会得到一个空集。选择器是一个过滤器,而不是一个搜索词,它相当于该步骤的.parent().filter('tr') :)

以上是关于jQuery 父选择器的主要内容,如果未能解决你的问题,请参考以下文章

jQuery选择器

jQuery 父选择器

使用 jQuery 和 CSS 选择器选择嵌套元素的共同父/祖先

jquery选择器

JQuery选择器——子元素筛选选择器和表单元素选择器

jquery常用的选择器