web-dev-qa-db-ja.com

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');

firebugでcurrの値を確認すると、何らかの理由で未定義と表示されます。

11
ravikiran

使用する

$(event.target).next() 

次の兄弟を取得します。式をnext関数に渡すこともできます。これにより、セレクターに一致する次の兄弟が選択されます。

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

nextAllを使用することもできます。これは同じように機能しますが、次のすべてのサブリングを返します。 詳細はこちらprevprevAllもあります。これらは、前の要素を取得するための類似物です。

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

22
geowa4

あなたはjqueryイベントハンドラーの中にいますか?もしそうなら、なぜ$(this).next()および/または$(this).prev()を使用しないのですか?

7
Dan F
var curr = (event.target).nextSibling;
2
nothrow