¿Cuál es la diferencia funcional entre estos tres jQuery
métodos?
- despegar()
- esconder()
- eliminar()
javascript
jquery
Vivek
fuente
fuente
detach
, eche un vistazo a stackoverflow.com/questions/12058896/…Respuestas:
hide()
establece ladisplay
propiedad CSS de los elementos coincidentes ennone
.remove()
elimina los elementos coincidentes del DOM por completo.detach()
es similarremove()
, pero mantiene los datos almacenados y los eventos asociados con los elementos coincidentes.Para volver a insertar un elemento separado en el DOM, simplemente inserte el
jQuery
conjunto devuelto dedetach()
:fuente
remove
en lugar dedetach
, el ejemplo todavía funciona.remove()
y adjúntelo nuevamente, el vínculo desaparecerá y hacer clic en el intervalo no hará nada. Si llamadetach()
y vuelve a conectar, el enlace permanece y el controlador de clic sigue funcionando.Imagina una hoja de papel sobre una mesa con unas notas escritas con lápiz.
hide
-> arrojarle una ropaempty
-> eliminar las notas con un borradordetach
-> agarre el papel en su mano y guárdelo allí para cualquier plan futuroremove
-> agarra el papel y tíralo a la basuraEl papel representa el elemento y las notas representan el contenido (nodos secundarios) del elemento.
Un poco simplificado y no completamente exacto, pero fácil de entender.
fuente
hide()
establece la visualización del elemento coincidente en ninguno.detach()
elimina los elementos coincidentes, incluidos todos los nodos de texto y secundarios.Este método almacena todos los datos asociados con el elemento y, por lo tanto, se puede utilizar para restaurar los datos del elemento y los controladores de eventos.
remove()
también elimina los elementos coincidentes, incluidos todo el texto y los nodos secundarios.Sin embargo, en este caso, solo se pueden restaurar los datos del elemento, no sus controladores de eventos.
fuente
En jQuery, hay tres métodos para eliminar elementos del DOM. Estos tres métodos son
.empty()
,.remove()
, y.detach()
. Todos estos métodos se utilizan para eliminar elementos del DOM, pero todos son diferentes..esconder()
Ocultar los elementos coincidentes. Sin parámetros, el método .hide () es la forma más sencilla de ocultar un elemento HTML:
.vacío()
El método .empty () elimina todos los nodos secundarios y el contenido de los elementos seleccionados. Este método no elimina el elemento en sí ni sus atributos.
Nota
El método .empty () no acepta ningún argumento para evitar pérdidas de memoria. jQuery elimina otras construcciones, como controladores de eventos y datos, de los elementos secundarios antes de eliminar los elementos en sí.
Ejemplo
Esto dará como resultado una estructura DOM con el texto Hai eliminado:
Si tuviéramos cualquier cantidad de elementos anidados adentro
<div class="hai">
, también se eliminarían..eliminar()
El método .remove () elimina los elementos seleccionados, incluidos todo el texto y los nodos secundarios. Este método también elimina los datos y eventos de los elementos seleccionados.
Nota
Utilice .remove () cuando desee eliminar el elemento en sí, así como todo lo que contiene. Además de esto, se eliminan todos los eventos vinculados y los datos de jQuery asociados con los elementos.
EJEMPLO
Considere el siguiente html:
Esto dará como resultado una estructura DOM con el
<div>
elemento eliminado:Si tuviéramos cualquier cantidad de elementos anidados dentro
<div class="hai">
, también se eliminarían. También se borran otras construcciones de jQuery, como los controladores de eventos o datos..despegar()
El método .detach () elimina los elementos seleccionados, incluidos todo el texto y los nodos secundarios. Sin embargo, conserva datos y eventos. Este método también guarda una copia de los elementos eliminados, lo que permite volver a insertarlos en un momento posterior.
Nota
El método .detach () es útil cuando los elementos eliminados deben reinsertarse en el DOM en un momento posterior.
Ejemplo
Para obtener más información, visite: http://www.scriptcafe.in/2014/03/what-is-difference-between-jquery_15.html
fuente
fuente