10

我试图在 .focus div 之后获取第一个 not(.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 问题,但我对这些东西还很陌生。

4

5 回答 5

24

以下语句应该可以解决您的问题。 $("#CONTAINER").find("div.focus").nextAll("div").not(".hidden").first();

于 2012-04-20T05:07:52.487 回答
2

使用 nextAll 方法: http ://api.jquery.com/next/

$('div.focus').nextAll('div:not(.hidden)').filter(':first');

这将在 .focus 之后找到下一个不是 .hidden 的 div

于 2012-04-20T05:05:12.730 回答
1

试试这个!

$("#CONTAINER").find("div.focus").next('div[class!="hidden"]')
于 2012-04-20T05:28:19.977 回答
0
$nextNotHidden = $('.focus').nextUntil(':not(.hidden)').last().next()
于 2012-04-20T05:05:28.363 回答
0

试试这个:

var stop = true;
$('#CONTAINER> div.focus +div').each(function(){
    if(!$(this).hasClass('hidden') && stop) code
    else stop = false;
});
于 2016-09-28T07:40:34.417 回答