使用jQuery如何向上查找具有特定类的元素?

5

在jquery中,是否有一种方式可以针对$(this)上面的某个元素并且该元素具有'abc'类进行操作?

(通过上面,我指的是父级、祖先等)

例如:

<div class='a'>
    <div class='b'>
        <div class='c'>
        </div>
    </div>
</div>

当我点击 class='c'时,我能否通过 class='a' 定位到它上面的任何元素,并且使用相同的代码得到与点击 class='b' 相同的结果?(如果我点击 'b',则具有 class='a' 的 'a' div 仍将是其父元素(或祖先元素))

2个回答

11

尝试使用closest()

$(this).closest('.a')
获取与选择器匹配的第一个元素,从当前元素开始并沿着 DOM 树向上进行。

1
如果有多个嵌套的.a div,则您可能需要执行以下操作: $(this).closest('.wrapper_above_a').find('.a'); - Jeemusu

4

.parents 方法可以加上选择器。

$(this).parents('.a')

这个搜索是向上搜索直到找到所寻找的内容吗?还是只搜索直接父级div? - d-_-b
1
@iight - .parents() 向上搜索,.closest() 也是如此。使用单数形式的 .parent() 可以访问直接父级 div。 - ahren
谢谢@xdazz,我没有看到parents中的's'。还要感谢@ahren! - d-_-b
2
parents()会一直向上搜索到文档级别,并将具有该类的所有父元素添加到选择器中。 - adeneo
@adeneo,你回答了我下一个也是最重要的问题!谢谢!! - d-_-b

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接