プログラマ的京都生活

2008年11月14日

[]jQueryのeachメソッドの逆

$('#sel').children(':selected').each(function(){ 処理 });

ってやると、複数のオブジェクトが取得できている場合、取得順にぐるぐる回るわけですがこれを逆向きに回したい。

普通のfor文なら

for(var i=ary.length-1; i>=0; i--) {
}

こんな感じで逆から回していけばいいけどjQueryオブジェクトの場合どうやるんだろうっていうのが疑問だった。

jQueryでは、複数の値が取得できたとしてもオブジェクトとしては1つなので、そういうメソッドがあるんだろうとeachの逆に該当するメソッドを探すも見つからず。

とあるところで教えてもらいました。

$($('#sel').children(':selected').get().reverse()).each(function(){ 処理 });

getメソッドでいったん通常の配列にし、それを配列のreverseメソッドで逆にしておいてからもう一回jQueryオブジェクトにして、eachでまわす、と。

スッキリ~♪

本当はeachの逆メソッドがあると便利なんだけどな〜。って自分で拡張すればいいんだけど。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

Connection: close