Rimuovere un elemento dal DOM non cancella l'elemento: semplicemente lo slega dal resto del documento. Di conseguenza la tua variabile "kus" non sarà mai undefined ma continuerà a contenere il medesimo oggetto, che però non sarà più "appeso" da nessuna parte. Potrai però sempre lanciare nuovamente document.body.appendChild(kus).Originariamente inviato da Adanf
in questo caso però, renderebbe invalidata anche la variabile *kus*.
È sbagliato l'approccio. Di solito quando si rimuove un elemento dal DOM non si "cancellano" le variabili che lo contenevano. Tanto ai fini del garbage collector non cambia nulla, dato che il DOM è sempre accessibile. Insomma, ripulire le variabili in questo caso non ti ripulirà la memoria. Tieniti le variabili contenenti l'oggetto e amen.Originariamente inviato da Adanf
Detto ciò, se invece volessi rimuovere dal documento l'elemento "input" solo se non è usato da altre istanze presenti nel codice, come potrei fare?
Cerca di evitare le closures quando non sono strettamente necessarie…:Originariamente inviato da Adanf
Salve a tutti, io ho una situazione tipo questa:
codice:function createtype(){ var inpt= document.createElement("input"); inpt.type="button"; document.body.appendChild(inpt); var kus = inpt; inpt.onclick=function(){ inpt.parentNode.removeChild(inpt); } }
codice:function removeMe () { this.parentNode.removeChild(this); } function createtype () { var inpt= document.createElement("input"); inpt.type="button"; document.body.appendChild(inpt); // var kus = inpt; inpt.onclick = removeMe; }![]()