76 votes

Supprimer tous les nœuds enfants d'un parent?

J'ai une liste, je veux juste supprimer tous les nœuds enfants de lui. Quel est le moyen le plus efficace à l'aide de jquery? C'est ce que j'ai:

<ul id='foo'>
  <li>a</li>
  <li>b</li>
</ul>

var thelist = document.getElementById("foo");   
while (thelist.hasChildNodes()){
    thelist.removeChild(thelist.lastChild);
}

est-il un raccourci plutôt que de supprimer chaque élément un à un?

----------- Modifier ----------------

Chaque élément de la liste a certaines données attaché à elle, et un gestionnaire de clic comme ceci:

$('#foo').delegate('li', 'click', function() {
    alert('hi!');
});

// adds element to the list at runtime
function addListElement() {
    var element = $('<li>hi</hi>');
    element.data('grade', new Grade());
}

finalement, j'ai peut ajouter des boutons par élément de liste trop - donc, on dirait que empty() est le chemin à parcourir, pour s'assurer il n'y a pas de fuites de mémoire?

Merci

Merci

179voto

Nick Craver Points 313913

Vous pouvez utiliser .empty() , comme ceci :

 $("#foo").empty();
 

De la docs :

Supprimez tous les nœuds enfants de l'ensemble des éléments correspondants du DOM.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X