Solved

avoiding duplicate ids with cloneNode

Posted on 2008-10-07
4
2,251 Views
Last Modified: 2012-06-27
I like to use cloneNode instead of dynamically building up html via DOM methods. However, grabbing the element via getElementBy Id and then clone it, you have duplicate ids.

I usually use the technique in ex 2, but I was wondering if there is anything wrong with the way in ex 1 where I grab the element by id, remove the id attribute, clone the element, set the id attribute back again

<!--  this div just holds templates for cloning -->

<div id="tpl_holder" style="display:none">
 

   <div "confirm_tpl">

   <-- bunch of html here -->

   </div>
 

</div>
 

// ex 1:

var confirm_tpl = getElementByID("confirm_tpl");

confirm_tpl.removeAtrribute("id");

var confirm = confirm_tpl.cloneNode(true);

confirm_tpl.setAtrribute("id","confirm_tpl");
 
 

// ex 2:

var remove_div = getElementsByClassName("commands",getElementByID("tpl_holder"),"div")[0].cloneNode(true);

Open in new window

0
Comment
Question by:drew22
  • 2
  • 2
4 Comments
 
LVL 42

Expert Comment

by:David S.
ID: 22668023
Why remove the ID of the element before cloning it? Why not just change the ID of the clone before adding it as a child of an element in the document?
0
 
LVL 1

Author Comment

by:drew22
ID: 22671075
>>Why not just change the ID of the clone before adding it as a child
because before you change the id of the clone you will have 2 elements with the same id and element ids must be unique
0
 
LVL 42

Accepted Solution

by:
David S. earned 500 total points
ID: 22671543
Yes, but the problem is only if both elements are part of the document. If only one of them is, then it doesn't matter.
0
 
LVL 1

Author Comment

by:drew22
ID: 22671632
right, the clone isn't yet part of the document. forgot about that
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Avoid defining the variables in the global scope; trying to define them in a local function scope. Because:   • Look-up is performed every time a variable is accessed.   • Variables are resolved backwards from most specific to least specific scope…
This article will give core knowledge of JavaScript and will head in to your first JavaScript program. I am Durvesh Naik and I am here to deal with this series of JavaScript. I will teach you JavaScript in part wise , as its quite boring to read big…
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

914 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now