要素の中にある、複数ある子要素に対して、n個ずつ特定の要素で囲い込む方法です。
例えば、div要素にずらっと並んだimg要素をクラスimg-boxという要素を作成して三個ずつ、
まとめるとすると下記のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
■変更前 <div id="box"> <img src="img/test.jpg" alt=""> <img src="img/test.jpg" alt=""> <img src="img/test.jpg" alt=""> <img src="img/test.jpg" alt=""> <img src="img/test.jpg" alt=""> <img src="img/test.jpg" alt=""> </ul> ■変更後 <div id="box"> <div id="img-box"> <img src="img/test.jpg" alt=""> <img src="img/test.jpg" alt=""> <img src="img/test.jpg" alt=""> </div> </div> <div id="box"> <div id="img-box"> <img src="img/test.jpg" alt=""> <img src="img/test.jpg" alt=""> <img src="img/test.jpg" alt=""> </div> </div> |
この変更をjqeryで行う方法は、#boxという要素に対して、子要素のimgを指定して.wrapAllを使用してdivタグで内包します。
whileでの記述ではlengthでループする度にimgの存在をカウントして、0になるまでループさせる記述です。
1 2 3 4 5 |
$(function(){ do { $("#box").children("img:lt(3)").wrapAll('<div class="img-box"></div>') }while($("#box").children("img").length); }); |
コメント