









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