Esto está relacionado con la pregunta javascript cloneNode and properties.¿Por qué cloneNode excluye propiedades personalizadas?
Estoy viendo el mismo comportamiento. Node.cloneNode no copia sobre las propiedades que agrego a mí mismo (código de entrada original):
var theSource = document.getElementById("someDiv")
theSource.dictator = "stalin";
var theClone = theSource.cloneNode(true);
alert(theClone.dictator);
theClone
no contiene ninguna propiedad "dictador".
No he podido encontrar ninguna explicación de por qué este es el caso. El documentation on MDN indica que cloneNode
"copia todos sus atributos y sus valores", una línea que se toma directamente del DOM specification.
Esto me parece que no funciona, ya que es casi imposible hacer una copia profunda de un árbol DOM que contiene propiedades personalizadas.
¿Falta algo aquí?
Probablemente evitaría usar cloneNode, y si quiero clonar algo, implementaría mi propia función de clonación para clonar el elemento como mejor me parezca (por ejemplo, podría crear uno nuevo usando el constructor, luego copiar atributos, copiar propiedades y posiblemente otras cosas personalizadas dependiendo de su caso específico). – trusktr