jQuery:在当前元素之后立即获取下一个元素

rav*_*ran 11 jquery traversal css-selectors

我需要将焦点设置为当前元素的下一个元素(在其他情况下是立即上一个).

例如:

<li>item1</li> <- prev element (get this element)
<li>item1</li><- current element
<li>item1</li> <- next element (get this element)
<li>item1</li>
Run Code Online (Sandbox Code Playgroud)

这是我用的

var curr = (event.target).next();
$(curr).trigger('focus');
Run Code Online (Sandbox Code Playgroud)

当我检查currfirebug中的值时,由于某种原因显示未定义.

geo*_*wa4 22

使用

$(event.target).next() 
Run Code Online (Sandbox Code Playgroud)

得到下一个兄弟姐妹.您还可以将表达式传递给next函数.这将选择与您的选择器匹配的下一个兄弟:

$(event.target).next("p")
Run Code Online (Sandbox Code Playgroud)

您也可以使用nextAll,其工作方式相同但返回以下所有子语句.在这里查看更多.还有,prev以及prevAll哪些是获得前一个元素的类似物.

基本上,你真的很接近,你只需要包装event.target在jQuery对象中,因为event.target返回实际的元素.


Dan*_*n F 7

你在jquery事件处理程序中吗?如果是这样,为什么不使用$(this).next()和/或$(this).prev()


not*_*row 2

var curr = (event.target).nextSibling;
Run Code Online (Sandbox Code Playgroud)