这是我的html
的简化版本<ul>
<li><h2>1/1/2014</h2></li>
<li>
<ul>
<li> <div class="something"> <span class="more"> +3 </span> </div> </li>
</ul>
</li>
<li>
<ul>
<li><h2>2/3/2014</h2></li>
<ul>
<li> <span class="more"> +9 </span> </li>
</ul>
</ul>
</li>
</ul>
这是我的jq代码
$('.more').each(function(){
var more = $(this).text();
var date = $(this).prev('h2').text();
})
我希望在每个h2
之前立即获得.more
我已经尝试了所有prev
方法和closest
,但没有一种方法可以使用
答案 0 :(得分:0)
h2不是'prev'或'before'元素,因为它嵌套在LI中。
您需要使用
$('.more').each(function(){
var more = $(this).text();
var date = $(this).parents('li').prev('li').children('h2').text();
alert(date);
});
您需要检查'日期'是否为空。
这是一个jsfiddle http://jsfiddle.net/jLZww/1/
答案 1 :(得分:0)
你可以这样做:
$('.more').each(function(index, elem){
$(elem).parents('ul').first().parent().prev().find('h2')
// Then do whatever you want with the h2...
})