Откуда и куда копируем:
const source = document.querySelector('.menu');
const target = document.querySelector('#parent');
- Вариант раз - cloneNode.
Можно перебирать элементы и копировать их по одному:
for (const n of source.children) {
target.appendChild(n.cloneNode(true));
}
// или
source.querySelectorAll(':scope > *').forEach(n => {
target.insertAdjacentElement('beforeend', n.cloneNode(true));
});
А можно скопировать их родителя:
// вложенные узлы копии добавляем в целевой элемент
target.append(...source.cloneNode(true).children);
// или, заменяем целевой элемент копией исходного
target.replaceWith(source.cloneNode(true));
- Вариант два - копируем не сами элементы, а разметку:
target.innerHTML = source.innerHTML;
// или
target.outerHTML = source.outerHTML;