以前 jQuery の繰り返し処理について書きましたが(【jQuery】複数の要素に対して繰り返し処理をする(each・for) - TASK NOTES)、もうひとつ map というメソッドがあります。これは単純な繰り返し処理用ではないので前回のエントリからは外しましたが、使い慣れると非常に便利なのでまとめておきたいと思います。 今回使うサンプルのHTMLはこんな感じです。 <div class="hoge">ほげ1</div> <div class="hoge">ほげ2</div> <div class="hoge">ほげ3</div> ... jQueryのmapとは map とはマッチした要素数分を繰り返して指定した関数を実行し、その結果をまとめた新しいjQueryオブジェクトを返してくれます。簡単に言うと配列から別の配列を作るという事です。 .map( )メソッド var arr
eachのキホン:要素を1個ずつ処理する まずおさらい。 このようなHTMLがあるとします。 <ul> <li>foo</li> <li>bar</li> </ul> eachを使うと、要素1個ずつに対して順繰りに処理を行うことができます。 <script> $(function(){ $('li').each(function(){ alert( $(this).text() ); // 'foo', 'bar'と表示 }); }); </script> これがキホンです。 変形してみる 上のeach式は、下のように変形できます。 (一番外側のブロック$(function(){....})は省略します) $.each( $('li'), function(){ alert($(this).text()); }); さらに変形してみます。 グローバル変数 "$" はグローバル変数 "jQu
サンプル 例えば、下記のようなコードがあった場合、 <ul> <li>リスト項目1</li> <li>リスト項目2</li> <li>リスト項目3</li> <li>リスト項目4</li> <li>リスト項目5</li> </ul> 次の処理を実行すると、リスト項目3の背景が赤くなります。 $('li').eq(2).css('background-color', 'red'); また、次のようにマイナスの値を与えることも可能です。 -2を指定すると、リスト項目4が選択されます。 $('li').eq(-2).css('background-color', 'red'); 存在しないインデックス番号を指定した場合は、lengthが0の空のjQueryオブジェクトが返ります。 $('li').eq(5).css('background-color', 'red'); デモ インデックス番号2
■ HTTPでHashやArrayを送る手法に仕様は存在しない……の? jQueryでこんなふうに書くと: $.post('/', { hash: { foo: 'hoge', bar: 'fuga'}, array: ['baz', 'piyo'] }); サーバ側でこんなふうに受け取れて(これはSinatra): post '/' do params.each do |key, val| puts "#{key}: #{val} as #{val.class}" end end ちゃんとHashやArrayとしてアクセスできる: hash: {"foo"=>"hoge", "bar"=>"fuga"} as Hash array: ["baz", "piyo"] as Array ああこりゃ便利だね、で済ましてもいいんだけど、HTTP POSTの中身なんてただのバイト列なんだから型の情
まず結論から、配列と連想配列は分けるべきということがわかりました。悔しくて冗長に書きましたが、それだけですorz jQueryには、$.each という配列を走査するforeach的な関数があります。他の言語でもあるように配列と連想配列を考えなくてもいいと思いこんで、以下のようにしていました。 var array = []; // ここで配列を代入 array["hoge"] = "fuga"; $.each( array, function(i){ alert(i); } // -> 何も表示されません array["hoge"]を走査してくれることを期待していたのですが、反応なし。jQueryのソースを見てみると、jQueryは、lengthプロパティの有無で配列と連想配列を区別していることがわかります。 // $.eachのソース部分から引用 if ( object.length =
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く