jQuery:prev()不工作?

我在jQuery中使用prev()时遇到了麻烦,因为它没有选择正确的元素。

我的HTML结构如下:

...

...

“活动”部分是#contact。 我想选择上一节跳过


active = active.prev('section')似乎不起作用。 我想我可能正在阅读错误的文档……

如果我拿出


一切都很美妙。 关于如何跳过prev()上的


任何想法?

TIA

我想我可能正在阅读错误的文档……

.prev()的API文档给出了以下描述:

描述:获取匹配元素集中每个元素的前一个兄弟,可选择由选择器过滤。

所以,问题是hr在那里并被.prev()搜索,然后针对'section'选择器进行测试。


关于如何跳过prev()上的


任何想法?

您可以调用.prev()一次跳过该hr然后再次调用该部分:

 active = active.prev().prev('section'); 

或者使用.prevAll()并找到最接近的前一个(如果之前有任何其他部分发生):

 active = active.prevAll('section').first(); 

请改用prevAll()

 active = active.prevAll('section') 

来自jQuery文档:

prev()=> “获取前一个兄弟姐妹”所以它只会获得第一个元素,这就是为什么当你删除


时它会起作用。

或尝试:

 
...
...