2009-09-11 11 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の値をチェックするとき、それが何らかの理由で未定義を示すを使用したものです。

答えて

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

あなたはjqueryイベントハンドラの中にいますか?その場合は、$(this).next()および/または$(this).prev()を使用してください。

+0

イベントバブリングはどうですか? – geowa4

+0

公正な質問。これは、質問に欠けていたイベントをフックするために使用された元のセレクタに依存します。ニースの答えbtw、+1私から –

21

使用

$(event.target).next() 

次の兄弟を取得します。式をnext関数に渡すこともできます。これは、セレクタに一致する次の兄弟を選択します:また、同じように動作しますが、以下のsublingsのすべてを返すnextAllを、使用することができます

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

See more hereprevprevAllもあり、前の要素を得るための類似体です。

基本的に、あなたは本当に近いです。event.targetが実際の要素を返すので、event.targetをjQueryオブジェクトにラップするだけです。

関連する問題