Использование jQuery для получения следующего или предыдущего элемента из выбора - PullRequest
16 голосов
/ 11 июня 2009

Как я могу получить предыдущий или следующий элемент из выбора jQuery?

По сути, у меня будет набор элементов, скажем, все входные данные:

$('input')

Когда у меня есть один вход, мне также нужно получить предыдущий и следующий вход. Что-то вроде:

$(this).prev('input')
$(this).next('input')

Тем не менее, входные данные не являются братьями и сестрами, и я не хочу просто следующий элемент DOM. Я хочу следующий элемент в выборе jQuery (входные данные в этом случае).


Я знаю, что могу перебрать выбор jQuery с помощью

.each(function(...

Но мне не нужно проходить через все элементы, только один до и после.

Элементы также будут упорядочены динамически (с использованием сортируемых элементов jQuery UI).

Ответы [ 2 ]

18 голосов
/ 11 июня 2009

Вы можете сделать что-то вроде этого:

var inp = $('input');

var index = inp.index(this);
var next = inp[index+1];
var prev = inp[index-1];

Обратите внимание, что prev и next, точно так же, как теперь это не объекты jQuery, а объект DOM. Чтобы сделать их объектами jQuery, вам нужно обернуть их в функцию $().

8 голосов
/ 11 июня 2009

jQuery имеет встроенную поддержку в соответствии с вашими требованиями,

$($('input')[0]).next('input')

следующий

 $($('input')[0]).prev('input')

предыдущий

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...