jQuery 要素をコピーして追加し、IDを書き換える
inputボックスの数を、ユーザーが任意に操作できるように、動的にinputボックスなどを追加したい場合があると思います。
//Html <div id="roots"> <div id="each_root"> <div class="detail"> <input type="text" name="root"> <input type="button" value="行き先を追加" onclick="addInput();"> </div> </div> </div>
//Javascript function addInput(){ $("#each_root").clone().appendTo("#roots"); }
ついでに、何かの用途のためにコピーした中身の、IDを連番でつけてそれぞれを識別したい場合、IDを次のように動的に書き換えます。
//Javascript 上記の改訂版 var i = 0; function addInput(){ i++; $("#each_root"). //#each_rootを取得 clone(true). //上で取得した中身をコピー find('.detail'). //そのコピーした中身のdetailとついている要素を取得 attr('id',i). //上で取得した要素の中のidをiとする appendTo("#roots"); //#rootsに追加 }
- 役に立ちました。でも文脈からすると要素名はrootではなくrouteかな?とおもいました — {2017-06-22 (木) 10:27:55}