在jQuery中,尝试获得next-item-not-a-specific-class

时间:2012-04-20 04:59:59

标签: jquery jquery-selectors

我正试图在.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问题,但我对这些东西还是比较新的。

5 个答案:

答案 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;
});