div の別のコピーを追加するか、元のコンテンツの下に追加したいだけです。. clone() を使用すると、毎回2倍になります。毎回同じものをもう1つ追加したいです。それを理解することはできません。助言がありますか。コードは現在です。
$("#element").click(function(){
var newElement = $("#element").clone();
$("#element").append(newElement);
});
div の別のコピーを追加するか、元のコンテンツの下に追加したいだけです。. clone() を使用すると、毎回2倍になります。毎回同じものをもう1つ追加したいです。それを理解することはできません。助言がありますか。コードは現在です。
$("#element").click(function(){
var newElement = $("#element").clone();
$("#element").append(newElement);
});
要素を empty() にしてからappend
.
$("#element").click(function(){
var newElement = $("#element").clone();
$("#element").empty();
$("#element").append(newElement);
});
毎回クローンを作成する理由は、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 の代わりにクラスを使用することをお勧めします)
これにより、現在の要素の直後に要素のコピーが追加されます
$("#element").click(function () {
$(this).after($(this).html());
});