创建这段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 以查看其实际效果。
答案 0 :(得分:5)
这是因为您在从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]);
}
}
答案 1 :(得分:2)
为什么不使用jQuery呢?
function remove_inputs(){
var elements = $('#thediv input');
elements.remove();
}
以下是更多信息:http://api.jquery.com/remove/
答案 2 :(得分:-1)
function remove_inputs(){
var elements = document.getElementById('thediv').getElementsByTagName('input');
var size = elements.length;
for(var i = 0; i < size; i++){
elements[i].parentNode.removeChild(elements[i]);
}
}