Is there a way to copy an element without copying it's children?
My goal is to duplicate a table, along with all classes, inline styles, etc. But I do not want to copy any of the table element's children.
I realize I could copy the entire table and then remove the children from the copy. But I want to minimize screen flicker and I seem to recall there are problems manipulating elements before they are visible in the DOM.
Any suggestions?
Have you considered using native cloneNode
? The argument controls whether children should be cloned as well.
var clone = table.cloneNode(false);
This does not clone event handlers though. I'm not sure about styles set via the DOM API (probably not).
use .cloneNode
var t = document.createElement("table");
t.setAttribute("style",'background:#0F0; font-size:12px;');
var tr = document.createElement("tr");
var td = document.createElement("td");
td.appendChild(document.createElement("input"));
tr.appendChild(td);
t.appendChild(tr);
var clone = t.cloneNode();
console.log(clone);
//outputs
//<table style="background:#0F0; font-size:12px;"></table>
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