Ok let’s look at this part of code
$(tbody).find('tr').each((i, oldTbodyTr) => {
newTr = document.createElement('tr');
$(oldTbodyTr).find('td').each((i, oldTd) => {
let newTd = document.createElement('td');
newTd.innerHTML = oldTd.innerHTML;
newTd.classList = oldTd.classList;
newTd.style = oldTd.style; //Doesn't work
newTr.appendChild(newTd);
});
newTableTbody.appendChild(newTr);
});
It creates a new table body by looping through all rows in tbody of an already existing table.
Everything is fine, except that the style of old td doesn’t transfer to new td element.
I can’t figure out why.
>Solution :
If you want to copy inline styles, you could try newTd.style.cssText = oldTd.style.cssText since style itself is immutable.
See more about
style.cssText.
const source = document.getElementById('source');
const target = document.getElementById('target');
target.style.cssText = source.style.cssText;
<p id="source" style="color: red; background-color: blue; font-size: 20px;">Source</p>
<p id="target">Target</p>