我正在做一些基础的jQuery操作,实际上是入门级别的,经常需要通过类似以下方式向上遍历dom:
$(this).parent().parent().addClass('hello');
我在想,有没有更好的方法来做这件事情?
我正在做一些基础的jQuery操作,实际上是入门级别的,经常需要通过类似以下方式向上遍历dom:
$(this).parent().parent().addClass('hello');
您可以使用closest()
方法,在祖先链中返回与给定选择器匹配的第一个元素。
$(this).closest(SELECTOR_OF_THE_PARENT).addClass('hello')
假设你有以下的HTML代码:
<div>
<span>
<strong>Hi there</strong>
</span>
</div>
.parents()
来获取 div
元素:$("strong").parents("div").addClass("hello");
只需将"strong"
替换为this
,您就可以使用选择器查找特定的父元素。
.parents()
或者.closest()
-- 后者是最有效的,因为它在匹配到最近的选择器后停止向上遍历DOM。