2009-09-08 29 views

risposta

179

$target.remove(); Cosa stai cercando?

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

+68

Naturalmente questo rimuove solo dal documento visibile. Se ci sono altri riferimenti al nodo da JavaScript, come la variabile $ target stessa, per il momento l'oggetto sfuggirà al garbage collector. Se vuoi DESTROY devi anche perdere tutti i riferimenti ad esso. Non sono del tutto sicuro del motivo per cui vorresti DISTRUGGERE un elemento DOM. Forse odi solo $ target. Pessimo bersaglio, cosa ti ha mai fatto? – bobince

+49

$ target è gentile quando è da solo, ma diventa cattivo quando è intorno ai suoi 100.000 amici clonati. –

+2

'.empty()' ha un effetto simile? –

43

Se si vuole distruggere completamente il bersaglio, di avere un paio di opzioni. In primo luogo è possibile rimuovere l'oggetto dal DOM come descritto in precedenza ...

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

Opzione 1 - Quindi sostituire bersaglio con un oggetto jQuery vuota (jQuery 1.4+)

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

Opzione 2 - Oppure eliminare completamente la proprietà (causerà un errore se la si fa riferimento altrove)

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

Più lettura: info about empty jQuery object e info about delete

+0

grande spiegazione – neokio

+3

Perché 'delete $ target' non funzionerà: http://perfectionkills.com/understanding-delete/#misconceptions Perché '$ target = null' funziona? – LeeGee

+0

@LeeGee: puoi riassumere il tuo post per spiegare perché l'eliminazione non funziona con gli oggetti jQuery? Perché sembra funzionare quando guardiamo console.log ($ target) alla fine? Grazie. – Luke

Problemi correlati