Vous pouvez archiver ceci très facilement en utilisant la fonction Javascript innerHTML
. Comme ça :
Note Vous êtes vraiment sûr de vouloir insérer des balises p à l'intérieur d'une balise span ?
function addElem() {
spans = document.querySelectorAll('div span');
container = document.querySelector('div');
nc = '';
spans.forEach(s => {
c = s.innerHTML;
nc = nc + `<p>${c}</p>`;
});
container.innerHTML = '<span>' + nc + '</span>';
}
span {
color: red;
}
span p {
color: green;
}
<div>
<span>foobar</span>
<span>baz</span>
</div>
<input type="button" value="add element" onclick="addElem()">
Structure de sortie
<span>
<p>foobar</p>
<p>baz</p>
</span>