2011-11-28 96 views

回答

28

试试这个http://jsfiddle.net/p57hm/1/

$(function(){ 

    $('input').click(function(){ 
     $('.cloneitem:first').clone().appendTo('#container'); 
    }); 

}); 

目前您正克隆所有具有类元素.cloneitem但你一次只需要1个,所以你不想全选e .cloneItem但只是第一个,并克隆那一个。

+0

是的,只是想通了,虽然 – Johan

+0

非常感谢你的工作100% –

3

您的克隆仍具有类cloneitem,因此正在被克隆。 删除此类或更改选择器,使其不包含它们。

像这样,加入类克隆,并过滤掉这些项目:

$(function(){ 
    $('input').click(function(){ 
     $('.cloneitem').not('.cloned').clone().addClass('cloned').appendTo('#container'); 
    });  
}); 

http://jsfiddle.net/infernalbadger/p57hm/4/

+0

$('。cloneitem')可能仍然不止一个元素。对元素模板(要克隆的元素)使用ID而不是类是个好主意。 – Stefan

-1
$(function(){ 
    var clone = $('.cloneitem').clone(); 
    $('input').click(function(){ 
     clone.clone().appendTo('#container'); 
    }); 
}); 

http://jsfiddle.net/tZuDe/

1

$('.cloneitem')选择与cloneitem类的所有元素。

使用.first()

$('input').click(function(){ 
    $('.cloneitem').first().clone().appendTo('#container'); 
}); 
0

你是克隆的所有元素以“cloneitem”类,所以在第一次克隆一次,第二次将其克隆2 .. U可以修复它通过过滤只有第一个对象是这样的:

$(function(){ 

    $('input').click(function(){ 
     $('.cloneitem').first().clone().appendTo('#container'); 
    }); 

}); 

您也可以随时选择最后一个:

$('.cloneitem').last().clone().appendTo('#container'); 

或者只是绑定.clone()的第一个项目:

$('.cloneitem:first').clone().appendTo('#container'); 
1

你克隆一个元素与类“cloneitem”随后还追加与同一类问题引起的下一个克隆的克隆元素。

$(function() { 

    $('input').click(function(){ 
     $('.cloneitem').first().clone().removeClass('cloneItem').appendTo('#container'); 
    }); // edited 

}); 
+0

您应该删除'.first()',因为它是不明智的,因为cloneItem类被删除,它们不会被克隆。如果需要,可以一次克隆多个项目。 – HopefullyHelpful

1

有同样的问题。向想要克隆的div添加一个id,这种方式是唯一的。一个元素只能有一个id,但有很多类。