2009-09-11 163 views
10

我需要将焦点设置为紧邻的元素(在其他情况下,立即预览)到当前元素。jQuery:获取当前元素后的立即下一个元素

例如:

<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它表明不确定的某些原因。

回答

1
var curr = (event.target).nextSibling; 
6

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

+0

事件冒泡怎么样? – geowa4 2009-09-11 13:21:20

+0

公平的问题。这将取决于用于钩住事件的原始选择器,这是从问题中缺失的。好的答案顺便说一句,从我+1 – 2009-09-12 00:02:30

21

使用

$(event.target).next() 

得到一个同级。您也可以将一个表达式传递给next函数。这将选择下一个同级你选择匹配:

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

您还可以使用nextAll,它的工作方式相同,但返回以下所有sublings的。 See more here。还有,prevprevAll,这是类似于获取以前的元素。

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