Javascript 不删除 div 中的所有元素

标签 javascript html 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]);
   }
}

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

请检查这个 Jsfiddle 以查看实际效果。

最佳答案

那是因为您在从 live nodelist 中删除时跳过了项目.

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

这样做:

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

关于Javascript 不删除 div 中的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18410450/

相关文章:

html - 基于宽度兄弟图像宽度的 CSS 剪辑字符串

javascript - JS : remove lastChild only works every second button click

javascript - 如何做一个计数器计时器,它在结束时会显示一个 div,它会保持一段时间并再次重新启动

javascript - 当 promise 在 Nest 中解析为未定义时如何返回 404 HTTP 状态代码?

javascript - 检测webgl支持,我们应该使用Detector.js还是system.min.js?

html - 如何同时发布到多个网址?

Jquery UI 选项卡 - 将整个 Div/容器居中

javascript - 未捕获 无法在 'removeChild' : parameter 1 is not of type 'Node' 上执行 'Node'

javascript - 按类别删除在 Internet Explorer 中不工作的子项

javascript - Safari 在重定向/表单提交时暂停所有动画