0

jQuery が.clone()機能しているように見える方法では、複製されたオブジェクトをどこかに挿入すると、元のオブジェクトを再複製しない限り、もう一度挿入することはできません。たとえば、次のようにします。

var cloned = $('#elem1').clone();
$('#elem2').after(cloned);
$('#elem2').after(cloned);

の 1 つのコピーのみelem1がコピーされ、2 番目のafter呼び出しでは何も行われません。

複製されたオブジェクトを使用した後に「クリップボードをクリア」しない方法はありますか? 現在、オブジェクトをどこかに挿入する前に、オブジェクトを再度複製することで対処しています。これを行うより良い方法はありますか?

4

1 に答える 1

3

あなたの2行は、同じ要素のjQueryセットを2回移動するだけです。新しいコピーが必要な場合は、もう一度複製する必要があります。after()何も複製しません。コンテンツを移動するだけです。clone()この場合は、コンテンツを作成しているものです。

var cloned = $('#elem1').clone();
$('#elem2').after(cloned);
cloned = $('#elem1').clone();
$('#elem2').after(cloned);

また、その際に ID 属性を変更または削除する必要があります。

var cloned = $('#elem1').clone().removeAttr("id");
$('#elem2').after(cloned);
cloned = $('#elem1').clone().removeAttr("id");
$('#elem2').after(cloned);

ID の重複は技術的に許可されていないため、動作は未定義です。

于 2010-02-15T05:30:08.943 に答える