这是我的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();
})
我想在每次.more
之前立即获得h2
我已经尝试了所有prev
方法和closest
但没有一个有效
你可以做这样的事情:
$('.more').each(function(index, elem){
$(elem).parents('ul').first().parent().prev().find('h2')
// Then do whatever you want with the h2...
})
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/