Javascript 动态删除带有divs.Only JS的列表
当我选中所有复选框并按下按钮时,始终会保留最后一个节点。 我知道这是因为parentNode,因为DOM树上的索引仍然在内存中,或者类似的东西。 如果有人能帮助我了解该做什么,我将不胜感激 函数deleteChecked{ var node_listFields=document.getElementsByClassName'fields'; var复选框=document.getElementsByClassNamecheck; 对于变量i=0;iJavascript 动态删除带有divs.Only JS的列表,javascript,javascript-events,Javascript,Javascript Events,当我选中所有复选框并按下按钮时,始终会保留最后一个节点。 我知道这是因为parentNode,因为DOM树上的索引仍然在内存中,或者类似的东西。 如果有人能帮助我了解该做什么,我将不胜感激 函数deleteChecked{ var node_listFields=document.getElementsByClassName'fields'; var复选框=document.getElementsByClassNamecheck; 对于变量i=0;i
我也有同样的问题,用回归迭代法解决了 就我的理解而言,DOM节点索引始终必须是固定的:0,1,2,3…:
渐进迭代i=0;我有同样的问题,用回归迭代法解决了它 就我的理解而言,DOM节点索引始终必须是固定的:0,1,2,3…:
渐进迭代i=0;我是否已尝试在复选框中注册onchange事件?也许这可以帮助你…你似乎得到了一个复选框列表,然后试图修改一个不同的列表?我看到一些错误,例如未捕获的TypeError:未能在“节点”上执行“removeChild”:参数1不是“节点”类型。因为当您点击fields类的parentNode时正在访问主体?第二个答案是正确的,但你能简单地解释一下吗。。。我是学生您是否尝试在复选框中注册onchange事件?也许这可以帮助你…你似乎得到了一个复选框列表,然后试图修改一个不同的列表?我看到一些错误,例如未捕获的TypeError:未能在“节点”上执行“removeChild”:参数1不是“节点”类型。因为当您点击fields类的parentNode时正在访问主体?第二个答案是正确的,但你能简单地解释一下吗。。。我是一名学生,每次你删除时我都会减少。@null是的,那就行了。但我发现,指示数组上的迭代比指示数值变量上的向后迭代可读性强得多,后者恰好在数组内部调用了数组或者每次删除时都减少i。@null是的,这样就行了。但我发现,指示数组上的迭代比指示数值变量上的向后迭代可读性强得多,后者恰好在数组内部调用了数组这很聪明!我之所以打勾是因为这个原因:为什么会发生这种情况?哈,好吧,我知道它是静态的,因为你使用的标签不是类名…不聪明但仍然优雅是的。我按标记名和类型过滤DOM。至于类名,
@第二个Rikudo解释了为什么会发生这种情况。但是,即使使用i++按标记和类型进行过滤也会导致问题:这非常聪明!我之所以打勾是因为这个原因:为什么会发生这种情况?哈,好吧,我知道它是静态的,因为你使用的标签不是类名…不聪明但仍然优雅是的。我按标记名和类型过滤DOM。至于类名,@Second Rikudo解释了为什么会这样。但即使使用i++按标记和类型进行过滤也会导致问题:
var inputElems = document.getElementsByTagName("input");
for(var i = 0; i<inputElems.length; i++){
if(inputElems[i].type === "checkbox" && inputElems[i].checked === true) {
inputElems[i].parentNode.remove();
}
}
var inputElems = document.getElementsByTagName("input");
for(var i = inputElems.length-1; i>= 0; i--){
if(inputElems[i].type === "checkbox" && inputElems[i].checked === true) {
inputElems[i].parentNode.remove();
}
}