Tengo el siguiente código:
<div id="a"><p>this is p</p></div>Quiero envolver contenido dentro como
<div id="a"><div class="wrap"><p>this is p</p></div></div>Tu puedes hacer:
const p = document.querySelector('p'); p.outerHTML = `<div class="wrap">${p.outerHTML}</div>`; .wrap{border:2px solid blue} #a{border:2px solid red} <div id="a"> <p>this is p</p> </div> let curDiv = document.getElementById("a"); curDiv.innerHTML = `<div id="wrap">${curDiv.innerHTML}</div>` #a{ border:1px solid green; padding: 6px; } #wrap{ border:1px solid red; padding: 6px; } <html> <body> <div id="a"> <p>this is p</p> </div> </body> </html>Utilizar este:
var wrapDiv = document.createElement('div'); wrapDiv.setAttribute('class', 'wrap'); var children = document.getElementById('a').getElementsByTagName('p')[0]; children.parentNode.insertBefore(wrapDiv, children); wrapDiv.appendChild(children);