首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery -有比"parent().parent().parent()“更好的语法吗?

jQuery -有比"parent().parent().parent()“更好的语法吗?
EN

Stack Overflow用户
提问于 2011-09-15 19:18:23
回答 5查看 372关注 0票数 3

我正在做一些非常基础的jQuery工作,真的是入门,而且我经常通过做如下的事情来浏览dom

代码语言:javascript
复制
$(this).parent().parent().addClass('hello');

我只是想知道有没有更好的方法?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-09-15 19:20:09

您可以使用parents,它会依次返回所有祖先元素。如果要在特定级别停止遍历,请使用eq过滤结果集合。例如,要获取祖父母:

代码语言:javascript
复制
// 0 = parent, 1 = parent of parent, etc.
$(this).parents().eq(1).addClass('hello');

如果您想向上遍历树并不在特定级别停止,而是在特定选择器匹配处停止,请改用closest,例如:

代码语言:javascript
复制
$(this).closest("table").addClass('hello');
票数 8
EN

Stack Overflow用户

发布于 2011-09-15 19:20:15

您可以使用closest()方法,该方法返回祖先链中与给定选择器匹配的第一个元素。

代码语言:javascript
复制
$(this).closest(SELECTOR_OF_THE_PARENT).addClass('hello')
票数 1
EN

Stack Overflow用户

发布于 2011-09-15 19:20:22

假设您有以下HTML:

代码语言:javascript
复制
<div>
    <span>
        <strong>Hi there</strong>
    </span>
</div>

您可以只使用.parents()来获取div元素:

代码语言:javascript
复制
$("strong").parents("div").addClass("hello");

只需将"strong"替换为this,您就可以使用选择器来查找特定的父元素。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7429923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档