Jquery 附加divs内容的副本而不加倍
我想添加一个div的另一个副本,或者只是它的内容在原始的下面。使用.clone()时,每次都会加倍。我想每次再加一个相同的。我想不出来。任何建议。代码当前为Jquery 附加divs内容的副本而不加倍,jquery,Jquery,我想添加一个div的另一个副本,或者只是它的内容在原始的下面。使用.clone()时,每次都会加倍。我想每次再加一个相同的。我想不出来。任何建议。代码当前为 $("#element").click(function(){ var newElement = $("#element").clone(); $("#element").append(newElement); }); 您需要将元素设为空(),然后追加 $("#element").click(function(){
$("#element").click(function(){
var newElement = $("#element").clone();
$("#element").append(newElement);
});
您需要将元素设为空(),然后
追加
$("#element").click(function(){
var newElement = $("#element").clone();
$("#element").empty();
$("#element").append(newElement);
});
请尝试此代码
$("#element").click(function(){
var newElement =$('<div/>').html($("#element").html());
$("#element").after(newElement);
});
$(“#元素”)。单击(函数(){
var newElement=$('').html($(“#element”).html();
$(“#元素”)。在(新元素)之后;
});
如果您不希望它翻倍,请使用
$("#element").html(newElement);
试试这个
这不是最干净的解决方案,但一定要完成
基本上,您可以在第一次添加操作之前克隆集合,然后重新使用它:
$(document).ready(function () {
var elements;
$("#someid").on('click', function(){
if(!elements)
elements = $("#someid").clone();
$("#someid").append(elements.clone());
})
});
这将在当前元素之后追加元素的副本
$("#element").click(function () {
$(this).after($(this).html());
});
它每次克隆的原因是因为它包含div中的内容。因此,您不会得到克隆的div,而是得到同一div中的克隆内容,因此它会加倍 你真正需要的是。您可以通过克隆*后的警报(newElement.html())来验证这一点 因此,要在当前div之后克隆一个div,还需要整个div本身,因此除了已经提供的一些答案外,我们还可以使用outerHTML属性
$("#element").click(function(){
var newElement = $(this.outerHTML);
$("#element:last").after(newElement);
});
如果还需要click处理程序处理任何新的div,则需要与deprecated相同的:
(Prabu演示的变体,包括上述内容。对于多个id,我更喜欢使用一个类,而不是演示中的#id)
- 警报的替代方法:log.debug或firebug
$(document).on('click', '#element', function()