Вопрос по addclass, siblings, jquery – пред (); и следующий (); разъяснение использования Jquery

1

у нас есть серия 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 и добавлять классы next и previous. Но так как он ищет .current элементы, он не найдет их. Как я могу обратиться к панели .current и добавить addClass к следующему и предыдущему элементам .panel?

Спасибо.

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

Ваш Ответ

4   ответа
0

$('.current').prev() дает вам один элемент перед .current:

$('.current').next() дает вам один элемент после .current:

<div class="panel">DIV content 3</div>

Посмотреть демо:http://jsfiddle.net/ssNUN/

Если вы хотите получить все предыдущие или следующие элементы, используйтеnextUntil() а такжеprevUntil().

Посмотреть демо:http://jsfiddle.net/YfV5x/

3

siblings(), nextUntil, prevUntil, nextAll, prevAll функции.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
@Milksamsa: смотрите обновленный ответ, пожалуйста.
Нет. Мне нужны ПРОСТО следующие и родные братья и сестры & # x2026; Дело в том, что я не знаю, как выбрать следующий и предыдущий элементы .panel, начиная с .current (который имеет класс .panel, общий с другими) Milksamsa
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');
0

просто добавьте следующее

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

Похожие вопросы