2009-09-08 22 views

Odpowiedz

179

Czy jest to $target.remove(); czego szukasz?

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

+68

Oczywiście to tylko usuwa go z widocznego dokumentu. Jeśli istnieją inne odniesienia do węzła z JavaScript, takie jak sama docelowa zmienna $ cel, obiekt na razie ucieknie z garbage collectora. Jeśli chcesz ZNISZCZYĆ to również musisz stracić wszystkie odniesienia do niego. Nie jestem do końca pewien, dlaczego chciałbyś ZNISZCZYĆ element DOM. Może po prostu nienawidzisz celu. Kiepski cel, co on ci kiedykolwiek zrobił? – bobince

+49

Cel jest dobry, gdy jest sam, ale staje się nieprzyjemny, gdy jest w pobliżu swoich 100 000 sklonowanych przyjaciół. –

+2

Czy '.empty()' będzie miało podobny efekt? –

43

Jeśli chcesz całkowicie zniszczyć cel, masz kilka opcji. Po pierwsze można usunąć obiekt z DOM, jak opisano powyżej ...

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

Wariant 1 - Następnie zastąpić cel z pustym jQuery obiektu (jQuery 1.4+)

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

Opcja 2 - Lub całkowicie usunąć właściwość (spowoduje błąd, jeśli odwołasz się do niej gdzie indziej)

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

Więcej czytanie: info about empty jQuery object i info about delete

+0

wielkie wyjaśnienie – neokio

+3

Dlaczego 'delete $ target' nie zadziała: http://perfectionkills.com/understanding-delete/#misconceptions Dlaczego' $ target = null' nie działa? – LeeGee

+0

@LeeGee - Czy możesz podsumować swój post, aby wyjaśnić, dlaczego usuwanie nie będzie działać dla obiektów jQuery? Dlaczego wydaje się działać, gdy spojrzymy na console.log (cel) na końcu? Dziękuję Ci. – Luke

Powiązane problemy