JQuery: получить следующий следующий элемент после текущего элемента

Мне нужно установить фокус на элемент, следующий за ним (и в другом случае непосредственный prev) на текущий элемент.

Например:

<li>item1</li> <- prev element (get this element)
<li>item1</li><- current element
<li>item1</li> <- next element (get this element)
<li>item1</li>

Это то, что я использовал

var curr = (event.target).next();
$(curr).trigger('focus');

когда я проверяю значение curr в firebug, он по какой-то причине показывает undefined.

Ответ 1

Используйте

$(event.target).next() 

чтобы получить следующего брата. Вы также можете передать выражение функции next. Это позволит выбрать следующего брата в соответствии с вашим выбором:

$(event.target).next("p")

Вы также можете использовать nextAll, который работает одинаково, но возвращает все следующие подписи. Подробнее см. здесь. Существует также prev и prevAll, которые являются аналогами для получения предыдущего элемента (ов).

В принципе, вы были очень близки, вам просто нужно обернуть event.target в объект jQuery, так как event.target возвращает фактический элемент.

Ответ 2

Вы находитесь внутри обработчика событий jquery? Если да, почему бы не использовать $(this).next() и/или $(this).prev()?

Ответ 3

var curr = (event.target).nextSibling;