有了这个简单的设置
<div class="parent">
<div class="child">I'm spoiled</div>
</div>
<div class="aunt"></div>
<div class="uncle"></div>
<div class="parent">
<div class="child">I'm spoiled</div>
</div>
<div class="aunt"></div>
<div class="uncle"></div>
当我检测到对“叔叔”类的单击时,我想获得最接近的上一个“ .parent”的同级。我应该能够做
$( this ).prev( ".parent" ).children( ".child" ).text();
...但是这将返回一个空白。
如果我做
$( this ).prev().prev().children( ".child" ).text();
...这将返回预期的结果:“我被宠坏了”
我缺少prev([selector])的使用是否有一些限制?
[更新]
.prevAll()返回所有previuos类,因此
$( this ).prevAll( ".parent" ).children( ".child" ).text();
如果我单击第二个“ .uncle”,是否为“我宠坏了我宠坏了”,这不是我想要的结果。
我只需要最接近的前一个。
最佳答案
从jquery文档中:
.prev()说明:获取匹配元素集中每个元素的紧前同级元素,可以选择使用选择器进行过滤。
也:
若要选择所有前面的同级元素,而不仅仅是前面的相邻同级元素,请使用.prevAll()方法。
因此,您可以使用.prevAll()方法代替。
http://api.jquery.com/prev/