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;