克隆div并更改它的ID,并将其所有子项都改为唯一

Teg*_*der 22 javascript jquery jquery-selectors

使用JQuery可以像这样克隆一个Div并更改为它的ID添加一个新的标识符以及所有它的子ID?

例如,我希望能够克隆这个:

<div id="current_users">
<table id="user_list">
<tr id="user-0">
<td id="first_name-0">Jane</td>
<td id="last_name-0">Doe</td>
</tr>
<tr id="user-1">
<td id="first_name-1">John</td>
<td id="last_name-1">Doe</td>
</tr>
</table>
</div>
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

<div id="current_users_cloned">
<table id="user_list_cloned">
<tr id="user-0_cloned">
<td id="first_name-0_cloned">Jan</td>
<td id="last_name-0_cloned">Doe</td>
</tr>
<tr id="user-1_cloned">
<td id="first_name-1_cloned">John</td>
<td id="last_name-1_cloned">Doe</td>
</tr>
</table>
</div>
Run Code Online (Sandbox Code Playgroud)

或者我应该重新考虑我的结构并使用rel属性和可重用的类声明?

谢谢,

Tegan Snyder

Dav*_*ton 39

$("#current_users").clone(false).find("*[id]").andSelf().each(function() { $(this).attr("id", $(this).attr("id") + "_cloned"); });
Run Code Online (Sandbox Code Playgroud)

如果有附件,请观看您的活动.如果他们依赖于ID,你将不得不修复它们.

  • 你可以使用`attr()`的函数形式使头发更加干燥:`$(this).attr('id',function(i,id){return id +"_ cloned";});` (4认同)