我正试图在.focus div之后找到第一个不是(.hidden)的div。在这个例子中,焦点是X2,我应该回到X5,跳过X3和X4,因为它们是隐藏的。
<div id='CONTAINER'>
<div id='X1'>eks1</div>
<div id='X2' class='focus'>eks2</div>
<div id='X3' class='hidden'>eks3</div>
<div id='X4' class='hidden'>eks4</div>
<div id='X5'>eks5</div>
<div id='X6'>eks6</div>
</div>
这似乎应该是一个非常简单的jquery问题,但我对这些东西还是比较新的。
答案 0 :(得分:20)
以下声明应解决您的问题。
$("#CONTAINER").find("div.focus").nextAll("div").not(".hidden").first();
答案 1 :(得分:2)
使用nextAll方法: http://api.jquery.com/next/
$('div.focus').nextAll('div:not(.hidden)').filter(':first');
这将找到.focus之后的下一个div。不是.hidden
答案 2 :(得分:1)
试试这个!
$("#CONTAINER").find("div.focus").next('div[class!="hidden"]')
答案 3 :(得分:0)
$nextNotHidden = $('.focus').nextUntil(':not(.hidden)').last().next()
答案 4 :(得分:0)
试试这个:
var stop = true;
$('#CONTAINER> div.focus +div').each(function(){
if(!$(this).hasClass('hidden') && stop) code
else stop = false;
});