2009-09-08 6 views

Antwort

179

Ist $target.remove(); nach was Sie suchen?

http://docs.jquery.com/Manipulation/remove

+68

Dies ist natürlich nur aus dem sichtbaren Dokument entfernt. Wenn andere Referenzen auf den Knoten von JavaScript vorhanden sind, z. B. die $ target-Variable selbst, wird das Objekt den Garbage Collector vorerst verlassen. Wenn du es ZERSTÖREN willst, musst du auch alle Hinweise darauf verlieren. Ich bin mir nicht ganz sicher, warum Sie ein DOM-Element DESTROOMEN möchten. Vielleicht hasst du einfach $ target. Schlechte $ Ziel, was hat dir das jemals angetan? – bobince

+49

$ Ziel ist freundlich, wenn er alleine ist, aber er wird böse, wenn er um seine 100.000 geklonte Freunde ist. –

+2

Wird '.empty()' einen ähnlichen Effekt haben? –

43

Wenn Sie wollen das Ziel vollständig zerstören, haben Sie ein paar Optionen. Zuerst können Sie das Objekt aus dem DOM entfernen, wie oben beschrieben ...

console.log($target); // jQuery object 
$target.remove();  // remove target from the DOM 
console.log($target); // $target still exists 

Option 1 - Dann ersetzen Ziel mit einem leeren jQuery-Objekt (jQuery 1.4+)

$target = $(); 
console.log($target); // empty jQuery object 

Option 2 - Oder löschen Sie die Eigenschaft vollständig (verursacht einen Fehler, wenn Sie es woanders referenzieren)

delete $target; 
console.log($target); // error: $target is not defined 

More reading: info about empty jQuery object und info about delete

+0

großartige Erklärung – neokio

+3

Warum 'delete $ target' nicht funktioniert: http://perfectionkills.com/understanding-delete/#misconceptions Warum funktioniert' $ target = null' nicht? – LeeGee

+0

@LeeGee - Können Sie bitte Ihren Beitrag zusammenfassen, um zu erklären, warum das Löschen für jQuery-Objekte nicht funktioniert? Warum scheint es zu funktionieren, wenn wir am Ende console.log ($ target) betrachten? Vielen Dank. – Luke

Verwandte Themen