Javascript没有删除div中的所有元素

AMD*_*AMD 4 html javascript removechild

创建这段javascript代码以删除div中的所有输入

function remove_inputs(){
   var elements=document.getElementById('thediv').getElementsByTagName('input');
   for(var i=0;i<elements.length;i++){
       elements[i].parentNode.removeChild(elements[i]);
   }
}
Run Code Online (Sandbox Code Playgroud)

我确实只删除了一半的元素,我必须多次调用它才能删除所有输入.

请检查这个Jsfiddle以查看它的实际效果.

Den*_*ret 5

那是因为您从实时节点列表中删除时跳过项目.

当您在索引0处删除项目时,索引1处的项目采用索引0,因此您不会删除它,因为您的迭代已经在索引1上.

像这样做 :

function remove_inputs(){
   var elements=document.getElementById('thediv').getElementsByTagName('input');
   while(elements.length){
       elements[0].parentNode.removeChild(elements[0]);
   }
}
Run Code Online (Sandbox Code Playgroud)

  • 我可以提供演示:[http://jsfiddle.net/davidThomas/9wNkf/1/](http://jsfiddle.net/davidThomas/9wNkf/1/). (2认同)