2011-09-01 11 views
2

jqueryの次のメソッドは、次の兄弟を探しています。しかし、私は兄弟ではない次の要素が必要です。私はセレクタの次の要素を反復する必要があります。 例:jQuery next method alternative

$('.wrapper .parent div').next(); // in here next method looks first element 
// in selector and get next sibling of it. 

セレクタの次に一致する要素が必要です。単に各メソッドを呼び出すことで私に提供されますが、コレクション全体を反復する必要はありません。

スライスの方法は、制御された方法でマニュアルを反復するのに役立ちますが、スライスのパラメータを使用すると、使用するのが難しくなります。

何か別の解決方法があります。

答えて

1

jQuery eqメソッドを使用してインデックスを渡します。一致した要素のセットを、指定されたインデックスにある要素に減らします。

$('.wrapper .parent div').eq(1);//Whatever index you need pass into it. It is 0 based. 

http://api.jquery.com/eq/

+0

@AnyOne - これはあなたを助けましたか? – ShankarSangoli

0

おそらく$(".wrapper .parent div:nth-child(2)")を試してみてください。

または$(".wrapper .parent div:nth-child(" + i++ + ")")次のセット機能では、iが最初に取得したいものです。

JQuery nth-child selector documentation

+0

私は質問を更新しました。私は第二のものを探していません。私は反復手作業をしたい。 – AnyOne

+0

OPは子要素を探していません。 – ShankarSangoli

3

あなたがそれに複数のオブジェクトを持つjQueryのセレクタを使用している場合、あなたはそのリスト内の個々の要素を反復または取得することができますいくつかの方法があります。

これは、コレクションにどのように多くのですがわかります:

$('.wrapper .parent div').length 

これは、あなたがget()にパラメータとして渡すものを数に応じて(あなたのコレクション内のすべての項目のHTML DOM要素を取得します。

$('.wrapper .parent div').get(0); 

これは、コレクション内のすべての項目について、あなたにjQueryオブジェクトを取得します(あなたがeq()にパラメータとして渡すものを数に応じて:

$('.wrapper .parent div').eq(0); 

あなたは、コレクション全体、いくつかの方法を反復処理することができます。あなたは.each()を使用することができます。

$('.wrapper .parent div').each(function(index) { 
    // "this" will be set to the DOM element you are iterating in the collection 
}); 

または、手動でいくつかの異なる方法を繰り返すことができます:

あなただけでもDOM要素の配列にオブジェクトを変換することができ
var items = $('.wrapper .parent div'); 
for (var i = 0; i < items.length; i++) { 
    // items.get(i) is the DOM element 
} 

あるいは、 :

var domArray = $('.wrapper .parent div').makeArray(); 
for (var i = 0; i < domArray.length; i++) { 
    // domArray[i] is the DOM element 
}