2009-09-11 161 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返回實際的元素。