jQueryを使った際の、for文の説明と使い方をご紹介します。
for文とは?
for文は簡単に言うと、
「指定した回数分、処理を行う」ものです。
同じ処理を3回繰り返したい、などの動作を容易に行うことができます。
早速、実装例を見ながら理解していきましょう。
for文で要素「<p>」を追加していく
まずは以下のコードをご覧ください。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<script> $(function(){ //[var i=0;]変数を定義 変数iに0を格納 //[i<3;]iが3以上になるまで処理を繰り返す //[i++]一回の処理につきiに1を加えていく for (var i=0; i<3; i++) { $("#cont01").append("<p>たまご</p>"); } }); </script> <div id="cont01"></div> |
たまご
たまご
たまご
ここでは、<p>に囲われたたまごを3つ、ループして表示しています。
//のコメントアウト部分で説明していますが、まず初めに変数を定義。
次に条件となる数式を入力、最後に繰り返した際の追加処理を設定します。
- 変数「i」は最初0
- 一回目の処理が終わると、変数「i」に1が加算される。
- 二回目の処理が終わると、変数「i」は2になる。
- 三回目の処理が終わって、変数「i」は3になる。
- 変数「i」が3になることで、処理がここで終了する。
というような流れになります。
条件となる数式を3にすることで3回ループして、<p>が3回、
<div id=”cont01″>の中に吐き出されます。
数式の数値を変更することで、処理の回数を増減することができます。
for文で連番の画像を表示する。
次に少し応用したやり方をしてみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<script> $(function(){ //[var i=1;]変数を定義 変数iに1を格納 //[i<4;]iが4以上になるまで処理を繰り返す //[i++]一回の処理につきiに1を加えていく for (var i=1; i<4; i++) { $("#cont02").append("<img src='img"+ i +".jpg'><br>"); } }); </script> <div id="cont02"></div> |
今回、変数「i」の初期値を1にしています。
前述の指定では、0→1→2→3となりますので、最初の<img>のsrc指定が「img0.jpg」となってしまいます。
あらかじめ画像を作成するときにimg0.jpg、img1.jpgのように作成していればよいですが、
それではややこしくなってしまうので、最初の<img>のsrc指定がimg1.jpgになるように、
初めの指定を変えています。
- 変数「i」は最初1
- 一回目の処理でimg1.jpgを表示、変数「i」に1を加算して2になる。
- 二回目の処理でimg2.jpgを表示、変数「i」に1を加算して3になる。
- 三回目の処理でimg3.jpgを表示、変数「i」に1を加算して4になる。
- 変数「i」が4になり、処理が終了。
というループの流れになります。
for文で指定した要素の数だけループする
次はさらに応用したものを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<script> $(function(){ //[var i=0;]変数を定義 変数iに0を格納 //[i<apple;]変数appleにclass="apple"がついた<span>3の数を取得して代入した数分ループ処理 //[i++]一回の処理につきiに1を加えていく var apple = $(".apple").length ; for (var i=0; i<apple; i++) { //変数numにiの数+1を代入する。(iが2であれば、numには3が入る) var num = i +1; $("#cont03").append("<p>りんご"+ num +"個目</p>"); } }); </script> <span class="apple"></span> <span></span> <span class="apple"></span> <span></span> <span class="apple"></span> <span class="apple"></span> <span class="apple"></span> <span></span> <div id="cont03"></div> |
りんご1個目
りんご2個目
りんご3個目
りんご4個目
りんご5個目
今回は、<span>のappleというクラスのついたものの数をまず数えて、その数分のループ処理を行います。
クラスappleのついた<span>は合計で5個なので、変数「apple」には5が入ります。
つまり5回ループ処理を行うということになります。
しかし、ここで気を付けなければいけないのは、そのままループしてしまうと、
「りんご0個目、りんご1個目」と、おかしな表示になってしまいます。
前述の画像を表示させたときのように、iを1に設定すればいいのですが、別の方法として、
「var num = i +1;」と、毎回1の数字に1を追加したものを表示するという方法があります。
この例では、iが0だった場合には1となり、1だった場合には2となります。
その為、最初のリンゴは1個目となり、自然な表示とすることができます。
- あらかじめ、変数「apple」に、クラスappleのついた<span>の数を入れる(5)
- 変数「i」は最初0に設定
- ループ処理内で、変数「num」に変数「i」の数に加え、1を加算する。
- 変数「num」が1になり、表示は「りんご1個目」に、変数「i」に1を加算して1になる。
- 変数「num」が2になり、表示は「りんご2個目」に、変数「i」に1を加算して2になる。
- 変数「num」が3になり、表示は「りんご3個目」に、変数「i」に1を加算して3になる。
- 変数「num」が4になり、表示は「りんご4個目」に、変数「i」に1を加算して4になる。
- 変数「num」が5になり、表示は「りんご5個目」に、変数「i」に1を加算して5になる。
- 変数「i」が5になり、処理が終了。
少しわかりづらいかもしれませんが、このような内容になります。
for文を使うと繰り返し処理が楽になり、非常に便利
いかがでしたでしょうか。
少しちんぷんかんぷんになってしまうような部分もあるかもしれません。(僕が最初そうでした。)
一見するとめんどくさくてわかりづらいから、html直書きでいいや!
とも思ってしまうのですが、for文を使うことで、色々な表現をすることもできますし、
極めれば、jQueryのプラグインを自作することも可能です。(for文のみではありませんが。。)
ぜひ、for文の便利さを体感していただき、
jQueryも使いこなしてもらえれば、と思います。