<div id="con" >
<p class="bb">1</p>
<p class="aa">2</p>
<p class="aa">3</p>
<p class="bb">4</p> /*----- i want this reference */
<p class="aa">5</p>
<p class="aa">6</p>
<p id="last" class="aa">7</p>
<p class="aa">6</p>
<p class="aa">6</p>
</div>
我想找到具有排序值的兄弟姐妹中的前一个元素。 在这里我想找到'p'在#last
之前有'aa'类$("#last").prev('p.bb').text()
//空字符串
$("#last").prev().text()
//将提供 6
我想要4 ..只是前一个最接近'p.bb'的文本
答案 0 :(得分:2)
是吗:
$("#last").siblings('p.bb:last').text()
你正在寻找?演示:http://jsbin.com/opaqen/edit
或者是这样的:
http://jsbin.com/opaqen/2/edit
或使用.prevAll()
从#last:
var lastB = $("#last").prevAll("p.bb:first");
lastB.css("background-color","#f00");
答案 1 :(得分:1)
我不确定您正在寻找什么,但假设您想找到p
元素之前的bb
课程#last
:< / p>
var $last = $('#last');
var lastIndex = $last.index('#con p');
for (i=lastIndex; i>=0; i--){
if ($('#con p').eq(i).hasClass('bb')){
$('#con p').eq(i).css('background-color','#f00');
alert($('#con p').eq(i).text());
break;
}
}
虽然这比@voigtan的答案更加冗长,但它允许您使用任何任意元素,并确保找到的.bb
元素始终在此之前发生元件。