如何在jQuery中find具有已知类的父类?

我有一个<div> ,其中有许多其他的<div> s,每个在不同的嵌套级别。 而不是给每个孩子<div>一个标识符,我宁愿给根<div>标识符。 这是一个例子:

 <div class="a" id="a5"> <div class="b"> <div class="c"> <a class="d"> </a> </div> </div> </div> 

如果我在jQuery中编写一个函数来响应类d并且想要为它的父类afind它的ID,那我该怎么做呢? 我不能简单地做$('.a').attr('id'); 因为有多个class级。 我可以find其父母的父母的ID,但似乎devise不好,很慢,而且不是很多形(我将不得不编写不同的代码来find类c的ID)。

假设this.d ,你可以写

 $(this).closest('.a'); 

closest方法返回匹配select器的元素的最内层父元素。

将select器传递给jQuery 父类函数:

 d.parents('.a').attr('id') 

编辑嗯,实际上Slaks的答案是优越的,如果你只想要最匹配的select器的祖先。

你可以使用父母()来获得给定select器的所有父母。

说明:获取当前一组匹配元素中每个元素的祖先,可以通过select器进行过滤。

但是parent()将只获得元素的第一个父元素。

说明:获取当前匹配元素集中每个元素的父元素,可以通过select器进行过滤。

jQuery的父母()与父母()

还有.parentsUntil() ,我认为这将是最好的。

说明:获取当前一组匹配元素中每个元素的祖先,直到但不包括由select器匹配的元素。