7

要素を別のコンテナにコピーするために jquery appendTo を使用しようとしています。オブジェクトは実際に追加されますが、ソースから削除されます。ソース要素をそのままにして要素を追加する方法はありますか? コピーと呼んでください。クローンと呼んでください。好きなように呼んでください。

これが私の現在のコードです:

jQuery(document).ready(function()
{
    jQuery('#button').appendTo('#panel'); //button should appear ALSO in panel.
});
4

3 に答える 3

12

閉じますが、十分に閉じていません。以下のコードclone()は要素を作成し、それをに追加します#panel

jQuery(document).ready(function()
{
    jQuery('#button').clone().appendTo('#panel');
});

ID同じページで2回使用することは標準に反することに注意してください。したがって、これを修正するには:

jQuery(document).ready(function()
{
    jQuery('#button').clone().attr('id', 'newbutton').appendTo('#panel');
});
于 2009-07-29T00:42:52.377 に答える
5

clone()追加する前に、選択したjQueryオブジェクトのメソッドを呼び出すだけです。

$('#button').clone().appendTo('#panel');

選択した要素にアタッチされているすべてのイベントハンドラーも複製する必要がある場合は、ブール値trueをパラメーターとしてclone()メソッドに渡します。

idまた、選択した要素の属性を変更することもできます...これは次のように簡単です。

$('#button').clone().attr('id', 'button-clone').appendTo('#panel');
于 2009-07-29T00:43:41.190 に答える
1

実行する必要のあるコードは次のとおりです。

jQuery(document).ready(function()
{
    jQuery('#button').clone().appendTo('#panel'); //button should appear ALSO in panel.
});

これは、DOMからノードを取得し、そのクローンをメモリに作成します。次に、この行はこの新しいオブジェクト(jQuery('#button').clone())を取得し、それをDOMに追加し直します#panel。これは通常、常に優れた戦略です。DOMにできるだけ触れないようにして、DOMの操作を行うようにしてください。ノードと要素を最後まで挿入または追加しなくても、大量の操作を行うことができます。

于 2009-07-29T00:43:29.363 に答える