您可以使用它的事件和数据克隆元素,但事件仍然适用于原始对象而不是新对象。
我使用jsfiddle来演示问题:http://jsfiddle.net/VZZG4/
重现: 1.点击克隆按钮 2.在新文本输入中,键入“新建” 3.点击新克隆按钮 实际结果:最新的克隆说“测试” 预期结果:最新的克隆说“新”
问题:如何克隆要克隆的事件和数据,但是应用于最新的克隆?
答案 0 :(得分:2)
使用nearest()克隆预期的元素......
$(document).ready(function() {
$('#clone').click(function() {
$(this).closest('#container').clone(true).appendTo('#wrap');
});
});
我建议您使用class
代替id
。重复id
无效html。
答案 1 :(得分:2)
您错误地克隆带ID的对象。在大多数浏览器中,如果您有多个具有相同ID的元素,则将返回第一个元素。因此,$('#container')
将始终返回值为Test
的第一个。
改为应该克隆类的元素。
HTML:
<div id="wrap">
<div class="container">
<input type="text" class="edit" value="Test">
<input type="button" class="clone" value="Clone">
</div>
</div>
JavaScript的:
$(document).ready(function() {
$('.clone').click(function() {
$(this).closest('.container').clone(true).appendTo('#wrap');
});
});
检查代码的修改版本http://jsfiddle.net/VZZG4/2/
参考: closest