jQuery vide () vs remove ()
-
29-09-2019 - |
Question
Quelle est la différence entre empty()
et remove()
methods à jQuery
, et quand nous appelons une de ces méthodes, les objets en cours de création sera détruit et la mémoire libérée?
La solution
-
empty()
enlèvera tout le contenu de la sélection. -
remove()
supprimera la sélection et son contenu.
Considérez:
<div>
<p><strong>foo</strong></p>
</div>
$('p').empty(); // --> "<div><p></p></div>"
// whereas,
$('p').remove(); // --> "<div></div>"
Les deux supprimer les objets DOM et doit libérer la mémoire qu'ils prennent, oui.
Autres conseils
La documentation explique très bien. Il contient également des exemples:
avant:
<div class="container">
<div class="hello">Hello</div>
<div class="goodbye">Goodbye</div>
</div>
.remove ():
$('.hello').remove();
après:
<div class="container">
<div class="goodbye">Goodbye</div>
</div>
avant:
<div class="container">
<div class="hello">Hello</div>
<div class="goodbye">Goodbye</div>
</div>
.empty ():
$('.hello').empty();
après:
<div class="container">
<div class="hello"></div>
<div class="goodbye">Goodbye</div>
</div>
En ce qui concerne la mémoire est concerné, une fois qu'un élément est retiré du DOM et il n'y a pas plus de références à ce que le garbage collector récupérera la mémoire lors de l'exécution.
$("body").empty()
- il supprime les éléments HTML DOM dans la balise du corps -
lorsque vous déclarez $("body").remove()
-. ENLEVER l'ensemble HTML DOM avec le corps TAG