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