Parece que está tratando de reemplazar un nodo con otro nodo mientras conserva el contenido.
Usar innerHTML es probablemente una mala idea. Se perderán todos los oyentes de eventos que haya configurado. Cualquier propiedad de expansión o estilo dinámico en cualquier elemento DOM también se perderá. También significa que estás invocando el analizador HTML, que es completamente innecesario.
En su lugar, use un fragmento de documento.
- ¿Cómo debería pasar mi tiempo ahora: trabajar en mi idea, aprender a hackear o escuchar canciones?
- ¿Cuáles son las perspectivas profesionales en el desarrollo de PHP en India?
- ¿Cómo y dónde alojar una aplicación de rieles?
- ¿Es bueno para SEO si tiene un texto de anclaje diferente en un sitio web que se vincula a la misma página interna?
- ¿Por dónde empiezas cuando revendes un creador de sitios web?
Este es un elemento
función replaceElement (source, newType) {
// Crea el fragmento de documento
const frag = document.createDocumentFragment ();
// Llénalo con lo que hay en el elemento fuente
while (source.firstChild) {
frag.appendChild (source.firstChild);
}
// Crea el nuevo elemento
const newElem = document.createElement (newType);
// Vaciar el fragmento de documento en él
newElem.appendChild (frag);
// Reemplace el elemento fuente con el nuevo elemento en la página
source.parentNode.replaceChild (newElem, source);
}
// Reemplace el con un
La transferencia de atributos del elemento original al nuevo se deja como ejercicio para el lector.