









Pour dupliquer un objet Dom (un div par exemple) vous devez utiliser cloneNode.
var o=document.getElementById('mondiv'); var neWo=o;
Dans cet exemple, si on modifie “neWo” (par exemple on change son innerHTML), on modifiera aussi “o” qui lui même modifiera le div qui a pour id “mondiv”.
Ce n'es pas forcement le comportement voulu. Pour que neWo soit une copie indépendante du div “mondiv”, il faut cloner ce div comme ceci :
var o=document.getElementById('mondiv'); var neWo=o.cloneNode(true); //Ici, neWo est une copie indépendante de du div "mondiv". Si vous changez le innerHTML de neWo le div ne sera pas affecté.
document.getElementById('toto').appendChild(neWo); //ceci ajoutera neWo dans l'objet qui a pour id "toto".
Il se peu aussi que vous ailliez besoin de cloner un objet javascript.
Exemple :
var o = new Date(2007,1,18); var neWo = o;
Ici, si vous modifiez “neWo”, “o” sera aussi impacté par la modification car ils sont tous les deux liés.
Mais il est possible de faire en sorte que “neWo” soit une copie indépendante de “o”. Pour cela, utilisez la fonction suivante :
function objClone(what,rec) { for (var i in what) { if ((rec) && (typeof what[i]=="object")) this[i] = new objClone(what[i],true); else this[i] = what[i]; } }
Exemple :
var o = new Date(2007,1,18); var neWo = new objClone(o,true); //ici neWo sera une copie indépendante de o
18/01/2007 09:07 -
Discussion
Salut !! merci tt d'abord pr l'explication et les exemples…je suis interessé par le 2eme exemple et lorsque je l'ai appliqué ca fonctionai mais le probleme c'est quand j'appelle une methode de l'objet “Date” par exemple “neWo.getDate();”, j'aurais comme erreur “Metode non supporte par l'objet”.