1

div の別のコピーを追加するか、元のコンテンツの下に追加したいだけです。. clone() を使用すると、毎回2倍になります。毎回同じものをもう1つ追加したいです。それを理解することはできません。助言がありますか。コードは現在です。

$("#element").click(function(){

    var newElement = $("#element").clone();
    $("#element").append(newElement);

});
4

6 に答える 6

0

要素を empty() にしてからappend.

$("#element").click(function(){   
    var newElement = $("#element").clone();
    $("#element").empty();
    $("#element").append(newElement);

});

Empty() ありと Empty() なしの違い

于 2013-08-28T10:38:59.157 に答える
0

毎回クローンを作成する理由は、appendにdivのコンテンツが含まれているためです。したがって、クローンされた div を取得するのではなく、同じ div 内でクローンされたコンテンツを取得するため、2 倍になります。

本当に必要なのはafterです。これは、クローンの後にアラート (newElement.html()) で確認できます*。

したがって、実際に現在の div の後に div を複製するには、div 全体も必要になるため、すでに提供されているいくつかの回答とは別に、outerHTML プロパティを使用できます。

$("#element").click(function(){

    var newElement = $(this.outerHTML);
    $("#element:last").after(newElement);

});

クリック ハンドラーが新しい div のいずれかでも機能する必要がある場合は、 deprecated liveと同等のものが必要になります。

$(document).on('click', '#element', function()

jsfiddle デモ (上記を含む Prabu のデモのバリエーション。複数の ID を使用する場合、デモのように #id の代わりにクラスを使用することをお勧めします)

  • alert の代替: log.debug または firebug
于 2013-08-28T11:41:13.643 に答える
0

これにより、現在の要素の直後に要素のコピーが追加されます

$("#element").click(function () {
    $(this).after($(this).html());
});
于 2013-08-28T11:00:16.013 に答える