And*_*ker 31
我会传递prop一个键/值对映射来克隆后更新这些值:
$("#selector").clone().prop({ id: "newId", name: "newName"});
Run Code Online (Sandbox Code Playgroud)
在您添加它们之前,DOM中不存在克隆元素,因此在id您执行此操作之前,您不必担心重复的问题.
示例: http ://jsfiddle.net/BbpRA/
更新:在评论中,您说input您需要克隆20 秒.我将创建一个获取DOM元素和新id和名称的函数.你甚至可以制作一个小插件:
(function($) {
$.fn.cloneWithProperties = function (properties) {
return this.clone().prop(properties);
};
})(jQuery)
Run Code Online (Sandbox Code Playgroud)
用法:
$("#selector").cloneWithProperties({ id: "newId", name: "newName" });
Run Code Online (Sandbox Code Playgroud)
你可以尝试这样的事情:
<div class="container">
<div class="goodbye">
Goodbye
<div id="h1" class="hello">Hello</div>
</div>
</div>
$('#h1').clone().attr('id','h2').appendTo('.container');
Run Code Online (Sandbox Code Playgroud)