Using JQuery it possible to clone a Div like this and change add a new identifier to it's ID and all it's children ID's?
For instance I'd like to be able to clone this:
<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>
And have it look like this:
<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>
Or should I just rethink my structure and use rel attributes and reusable class declarations?
Thanks,
Tegan Snyder
To clone an element and change its id: Use the cloneNode() method to clone the element. Set a different id property on the element. For example, clone.id = 'another-id' .
To clone a div and change its id with JavaScript, we can use the cloneNode method on the div. Then we can set the id property of the cloned element to set the ID. to add the div.
$("#current_users").clone(false).find("*[id]").andSelf().each(function() { $(this).attr("id", $(this).attr("id") + "_cloned"); });
And watch your events if there are any attached. You'll have to fix them up if they rely on ids.
Unless you actually need to uniquely identify each of those cloned DIV's via code, I would replace your ID's with reusable classes. Otherwise, David Morton's answer looks like it might do the trick.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With