[jQuery] clone()で操作対象のエレメントを元の位置に保つ
スポンサーリンク
jQueryでhtmlエレメントを操作するとき、エレメントを元の場所に残しておきたい場合があります。そういう場合はclone()
を使います。
どういうことかというと、例えばボタンをクリックすると、その押したボタンが別の場所にあるDIVと入れ替わるような処理を書いたとします。コードでいうとこんな感じでしょうか。
<div>?</div> <button>Change !!</button> <script> $("button").click(function(){ var obj = $("div"); $(this).replaceWith( obj ); }); </script>
これだとDIVが元の場所から無くなってしまうのですね。要するに、replaceWith()
に限らずappend()
でもafter()
でも、jQueryのエレメントを移動させるメソッドはすべてカット&ペーストになっているわけです。
で、DIVを元の場所に残したままで、そのコピーを移動したいという場合にclone()
が登場するわけです。上のコードの場合だと、$("div")
の後ろに.clone()
をつなげることで、エレメントのコピーがvar obj
に代入されることになります。
<div>?</div> <button>Change !!</button> <script> $("button").click(function(){ var obj = $("div").clone(); $(this).replaceWith( obj ); }); </script>
これで操作対象のエレメントを元の場所に保ったままで、移動や入れ替えなどをさせることができるようになるというわけです。
スポンサーリンク
jQueryカテゴリーの投稿
- [jQuery] $.ajaxのコールバック関数にcontextで値を渡す
- [jQuery] 文字列が含まれているかどうかの判定
- [jQuery] rowspanを持つtableで行の表示・非表示を切り替える
- [jQuery] find()とchildren()の使い分け
- jQueryとPHPでAJAX通信を行う
- [jQuery] $('form').change()でフォーム全体の変更を監視する
- [jQuery] 属性が存在するかどうかチェックするコード
- [JS][jQuery] 要素の存在を確認する6通りのコードと実行速度
- [jQuery] tableの内容を取得する
- [jQuery] index()でクリックされたhtml要素が何番目の要素かを知る