我想添加div的另一个副本,或者只是原始下面的内容。使用.clone()每次都会加倍。我想每次都添加一个相同的。无法弄清楚。有什么建议。代码目前。
$("#element").click(function(){
var newElement = $("#element").clone();
$("#element").append(newElement);
});
答案 0 :(得分:0)
您需要将元素设为空()然后append
。
$("#element").click(function(){
var newElement = $("#element").clone();
$("#element").empty();
$("#element").append(newElement);
});
答案 1 :(得分:0)
<强> Demo 强>
试试这段代码......
$("#element").click(function(){
var newElement =$('<div/>').html($("#element").html());
$("#element").after(newElement);
});
答案 2 :(得分:0)
如果你不想让它翻倍,请使用
$("#element").html(newElement);
答案 3 :(得分:0)
试试这个http://jsfiddle.net/73Hb4/1/
不是最干净的解决方案,但要完成它。
基本上,您在第一个添加操作之前克隆该集,然后重新使用它:
$(document).ready(function () {
var elements;
$("#someid").on('click', function(){
if(!elements)
elements = $("#someid").clone();
$("#someid").append(elements.clone());
})
});
答案 4 :(得分:0)
这将在当前元素
之后追加元素的副本$("#element").click(function () {
$(this).after($(this).html());
});
答案 5 :(得分:0)
每次克隆的原因是append包含 div中的内容。所以你没有获得一个克隆的div但是在同一个div中克隆了内容,因此它加倍了。
你真正需要的是after。您可以在克隆*。
之后使用警报(newElement.html())对此进行验证所以要在当前div之后实际克隆一个div,你还需要整个div本身,所以除了已经提供的一些答案之外,我们可以使用outerHTML属性。
$("#element").click(function(){
var newElement = $(this.outerHTML);
$("#element:last").after(newElement);
});
如果你需要点击处理程序来处理任何新的div,你需要等同于已弃用的live:
$(document).on('click', '#element', function()
jsfiddle demo (包括上述内容的Prabu演示的变化。有了多个ID,我更喜欢在演示中使用类而不是#id)