Вы можете использовать Element.outerHTML
, чтобы получить элемент в виде строки.Обратите внимание, что он не будет добавлять действительные btn
к div
, он скопирует html элемента и eventListener
, прикрепленный к нему, не будет работать.
Если вы хотите скопировать элементы с его функцией, выможно использовать cloneNode()
и appendChild()
, чтобы вставить его в родительский.
let somediv = document.querySelector('#somediv');
const btn= document.createElement('button');
btn.innerHTML = 'Click me';
btn.addEventListener('click',(e) => {
somediv.innerHTML = `<div>${btn.outerHTML}</div>`
console.log(somediv.innerHTML);
})
document.body.appendChild(btn);
#somediv{
position:absolute;
top:200px;
left:200px;
padding:10px;
background:blue;
}
<div id="somediv"></div>