2009-09-08 22 views

Respuesta

179

¿Es $target.remove(); lo que estás buscando?

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

+68

Por supuesto esto sólo lo quita del documento visible. Si hay otras referencias al nodo desde JavaScript, como la variable $ target en sí misma, el objeto escapará al recolector de basura por ahora. Si quieres DESTRUIRLO, también debes perder todas las referencias. Sin embargo, no estoy muy seguro de por qué querrías DESTRUIR un elemento DOM. Tal vez solo odies $ target. Pobre $ objetivo, ¿qué te hizo alguna vez? – bobince

+49

$ target es amable cuando está solo, pero se pone desagradable cuando tiene alrededor de sus 100.000 amigos clonados. –

+2

Will '.empty()' ¿tiene un efecto similar? –

43

Si desea destruir completamente el objetivo, que tienen un par de opciones. En primer lugar se puede retirar el objeto del DOM como se describió anteriormente ...

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

Opción 1 - A continuación, reemplace objetivo con un vacío objeto jQuery (jQuery 1.4+)

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

Opción 2 - O bien elimine la propiedad en su totalidad (causará un error si la hace referencia en otro lugar)

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

Más lectura: info about empty jQuery object y info about delete

+0

gran explicación – neokio

+3

Por qué 'delete $ target' no funcionará: http://perfectionkills.com/understanding-delete/#misconceptions ¿Por qué no funciona' $ target = null'? – LeeGee

+0

@LeeGee - ¿Puedes resumir tu publicación para explicar por qué la eliminación no funcionará para los objetos jQuery? ¿Por qué parece funcionar cuando miramos console.log ($ target) al final? Gracias. – Luke

Cuestiones relacionadas