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?

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top