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

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

Например:

<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, оно по какой-то причине показывает неопределенное.

Ответы [ 3 ]

22 голосов
/ 11 сентября 2009

Использование

$(event.target).next() 

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

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

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

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

7 голосов
/ 11 сентября 2009

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

2 голосов
/ 11 сентября 2009
var curr = (event.target).nextSibling;
...