是否有 jQuery 选择器/方法来查找特定的父元素 n 级?

Posted

技术标签:

【中文标题】是否有 jQuery 选择器/方法来查找特定的父元素 n 级?【英文标题】:Is there a jQuery selector/method to find a specific parent element n levels up? 【发布时间】:2010-10-16 11:44:06 【问题描述】:

考虑以下 html。如果我有对

【参考方案1】:

parents 函数可以满足您的需求:

$(this).parents("tr:first");

【讨论】:

当然,谢谢!这就是“编辑其他人的帖子”权限的用途;) 哈,这很有趣。我想知道为什么 Visual jQuery 列出了 parent(expr) 两次;原来我在结尾处完全隔开了 s。 谢谢 Seb,我根本不知道这个,它真的很有用。当然胜过一堆'parent().parent()....'【参考方案2】:

另外,如果您使用的是 jQuery 1.3+,您可以使用 closest 方法

$(this).closest("tr");

【讨论】:

只是想补充一点,closestparents 非常相似,但略有不同。你可以阅读更多here。总的来说,我认为closest 方法对于这种特定场景更有效。 hmm,这个函数名很好理解。【参考方案3】:

不是 jQuery,但这个选项效果更好

node.contains(otherNode)

Node.contains() 方法返回一个布尔值,指示是否 一个节点是否是给定节点的后代

https://developer.mozilla.org/en/docs/Web/API/Node/contains

【讨论】:

以上是关于是否有 jQuery 选择器/方法来查找特定的父元素 n 级?的主要内容,如果未能解决你的问题,请参考以下文章

使用 jQuery 查找选择器

[ jquery 过滤器 hasClass(class) ] 此方法用于在选择器的基础之上检查当前的元素是否含有某个特定的类,如果有,则返回true

jQuery 选择器没有特定的数据属性

jQuery - 如何使用选择器在表格中查找特定单元格?

[ jquery 过滤器 offsetParent() ] 此方法用于在选择器的基础之上搜索被选元素有定位的父级元素,仅对可见元素有效

[ jquery 过滤器 parent(expr) ] 此方法用于在选择器的基础之上搜索被选元素中符合表达式的父元素