创建这段 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/