Dies entfernt es natürlich nur aus dem sichtbaren Dokument. Wenn andere Verweise auf den Knoten aus JavaScript vorhanden sind, z. B. die Variable $ target selbst, wird das Objekt vorerst aus dem Garbage Collector entfernt. Wenn Sie es ZERSTÖREN möchten, müssen Sie auch alle Verweise darauf verlieren. Ich bin mir nicht ganz sicher, warum Sie ein DOM-Element ZERSTÖREN möchten. Vielleicht hasst du nur $ target. Armes $ Ziel, was hat es dir jemals angetan?
Bobince
52
$ target ist nett, wenn er alleine ist, aber er wird böse, wenn er ungefähr 100.000 geklonte Freunde hat.
Sebastián Grignoli
2
Wird .empty()ein ähnlicher Effekt haben?
Saurabh Nanda
3
@SaurabhNanda - Leer entfernt den Inhalt des Objekts, entfernt (oder zerstört) das Objekt selbst jedoch nicht.
Luke
46
Wenn Sie das Ziel vollständig zerstören möchten , haben Sie mehrere Möglichkeiten. Zuerst können Sie das Objekt wie oben beschrieben aus dem DOM entfernen ...
console.log($target);// jQuery object
$target.remove();// remove target from the DOM
console.log($target);// $target still exists
Option 1 - Ersetzen Sie dann das Ziel durch ein leeres jQuery-Objekt (jQuery 1.4+).
@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 uns am Ende console.log ($ target) ansehen? Danke dir.
Luke
Ich kann es nicht besser erklären als den zitierten Artikel, den ich sehr detailliert fand.
LeeGee
Für den Datensatz funktioniert dies in der Konsole, da die Konsole JS im Bereich der Auswertung auswertet, wodurch das Löschen ermöglicht wird. Variablen in "natürlichen" Bereichen können nicht gelöscht werden. Verwenden Sie $target=nullstattdessen. Es ist schneller und führt nicht zu internen Browseroptimierungen.
Bendman
1
Löschen ist in Ordnung. Dies bedeutet nur, dass der Block von der JS-Engine nicht optimiert wird. In den meisten Fällen ist das völlig irrelevant. Wenn es zu einem Problem wird, suchen Sie nach Möglichkeiten, um Löschen zu verwenden. Nicht bevor.
.empty()
ein ähnlicher Effekt haben?Wenn Sie das Ziel vollständig zerstören möchten , haben Sie mehrere Möglichkeiten. Zuerst können Sie das Objekt wie oben beschrieben aus dem DOM entfernen ...
Option 1 - Ersetzen Sie dann das Ziel durch ein leeres jQuery-Objekt (jQuery 1.4+).
Option 2 - Oder löschen Sie die Eigenschaft vollständig (führt zu einem Fehler, wenn Sie an anderer Stelle darauf verweisen).
Weitere Informationen : Informationen zum leeren jQuery-Objekt und Informationen zum Löschen
quelle
delete $target
funktioniert das nicht ? Perfektionkills.com/understanding-delete/#misconceptions Warum$target=null
funktioniert es nicht ?$target=null
stattdessen. Es ist schneller und führt nicht zu internen Browseroptimierungen.Sie suchen die
.remove()
Funktion.http://docs.jquery.com/Manipulation/remove
quelle