Maison > Article > interface Web > Méthode Javascript RemoveChild() pour supprimer des nœuds et supprimer les compétences enfants nodes_javascript
Ce qui suit vous présentera comment supprimer des nœuds à l'aide de Javascript RemoveChild(). Les détails spécifiques sont les suivants :
En Javascript, il n'existe qu'une seule méthode pour supprimer des nœuds : RemoveChild().
La méthoderemoveChild() est utilisée pour supprimer un nœud enfant du nœud parent.
Grammaire :
parent.removeChild(thisNode)
Description du paramètre :
参数 | 说明 |
---|---|
thisNode | 当前节点,即要删除的节点 |
parent | 当前节点的父节点,即 thisNode.parentNode |
Par exemple, l'instruction pour supprimer le nœud avec id="demo" est :
var thisNode=document.getElementById("demo"); thisNode.parentNode.removeNode(thisNode);
Par exemple, supprimez le nœud :
<div id="demo"> <div id="thisNode">点击删除我</div> </div> <script type="text/javascript"> document.getElementById("thisNode").onclick=function(){ this.parentNode.removeChild(this); } </script>
Exemple de démonstration :
On peut voir que bien que Javascript ne fournisse qu'une seule méthode pour supprimer des nœuds, elle suffit.
ps : méthode JavaScript pour supprimer les nœuds enfants
Le code HTML est le suivant :
<div id="f"> <div>a</div> <div>b</div> <div>c</div> </div>
Si vous souhaitez supprimer tous les nœuds enfants sous le nœud f, la méthode naturelle et normale qui vous vient à l'esprit devrait être le code suivant :
var f = document.getElementById("f"); var childs = f.childNodes; for(var i = 0; i < childs.length; i++) { alert(childs[i].nodeName); f.removeChild(childs[i]); }
Lors de l'exécution du programme, nous avons constaté que, que ce soit sous FireFox ou IE, tous les nœuds enfants ne pouvaient pas être complètement supprimés (la zone vide était également supprimée dans FireFox
en tant que nœud, donc le résultat de la suppression du nœud sera différent), en effet, lorsque vous supprimez le nœud enfant d'index 0, il est naturel que l'index d'origine
A ce moment, l'index du nœud qui est 1 devient 0, et à ce moment la variable i est devenue 1. Lorsque le programme continue, il supprimera le nœud avec l'index d'origine de 2 et maintenant il est 1. Dans ce cas De cette manière, le résultat de l'exécution du programme est que seul le nœud est supprimé. Pour la moitié des nœuds enfants, le résultat du parcours en utilisant for in est le même. Vous voulez supprimer tous les nœuds normalement
Si c'est le cas, il faudrait supprimer de l'arrière vers l'avant, le code est le suivant :
for(var i = childs.length - 1; i >= 0; i--) { alert(childs[i].nodeName); f.removeChild(childs[i]); }
Nous commençons à supprimer à partir de la valeur maximale de l'index, en utilisant la méthode décroissante, afin que l'index ne bouge pas ou ne change pas.