分组();和next();用法澄清Jquery

时间:2012-06-21 09:00:54

标签: jquery addclass siblings

我们有一系列div,我们希望为当前所选DIV的下一个和上一个兄弟分配不同的类。

这是我们的代码:

<div class="panel">DIV content 1</div>
<div class="panel current">DIV content 2</div> //THIS IS THE CURRENTLY SELECTED PANEL
<div class="panel">DIV content 3</div>
<div class="panel">DIV content 4</div>
<div class="panel">DIV content 5</div>

据我所知,以下JQuery代码会查找.current的兄弟,并添加下一个和上一个类。但是既然它正在寻找.current元素,它就找不到em。 如何将.current面板和addClass引用到下一个和以前的.panel元素?

谢谢。

$('.current').prev().addClass('previous');
$('.current').next().addClass('next');

4 个答案:

答案 0 :(得分:3)

根据您的需要,您可以使用siblings()nextUntilprevUntilnextAllprevAll个功能。 next()prev()将分别为您提供前一个或下一个元素。

//To select all previous elements of `.current` element:
$('.current').prevAll('.panel').addClass('previous');
//To select all next elements of `.current` element:
$('.current').nextAll('.panel').addClass('next');

DEMO

答案 1 :(得分:1)

试试这个:

$('.current').prevUntil('.panel:first').addClass('previous');
$('.current').nextUntil('.panel:last').addClass('next');

http://jsfiddle.net/yxq39/

或:

$('.current').prevAll().addClass('previous');
$('.current').nextAll().addClass('next');

答案 2 :(得分:0)

你做得对 只需添加以下内容

$('.current').prev(".panel").addClass('previous');
$('.current').next(".panel").addClass('next');

答案 3 :(得分:0)

$('.current').prev()在.current:

之前为您提供了一个元素
<div class="panel">DIV content 1</div>

$('.current').next()在.current:

之后给你一个元素
<div class="panel">DIV content 3</div>

请参阅演示:http://jsfiddle.net/ssNUN/

如果您想使用nextUntil()和prevUntil()获取所有上一个或下一个元素。

请参阅演示:http://jsfiddle.net/YfV5x/