function deleteList () {
var toDoList;
toDoList = document.getElementById("todo");
var listArray = document.getElementsByTagName("li");
console.log(listArray);
/* returns correctly: [li#first.kitchen, li#second.kitchen,
li#third.kitchen, li#fourth, first: li#first.kitchen, etc... */
for (var i = 0; i < listArray.length; i++); {
var listItemHolder = listArray[i];
console.log(listItemHolder);
/* Returns undefined */
toDoList.removeChild(listItemHolder);
}
}
我只是制作一个简单的待办事项列表,允许用户在按下执行此功能的“删除按钮”时删除所有项目。
我尝试过:
对所发生的事情的任何解释都将不胜感激!感谢
答案 0 :(得分:2)
它是for循环的右括号之后的form
。
删除它
;
发生了什么事?
你有一个空的for循环体for (var i = 0; i < listArray.length; i++) {
循环;
的值为i
且listArray.length
为undefinend
你还必须向后循环。
所以你应该使用
listArray[listArray.length]
否则你只会删除列表中的每一个项目 那怎么样? 看这里 首先你有这个清单
for (var i = listArray.length-1; i >= 0; i--) {
删除第一个后,你就有了这个
0: todo 1
1: todo 2
2: todo 3
3: todo 4
你的计数变量i的值为1.接下来要删除的是todo 3
0: todo 2
1: todo 3
2: todo 4
这是结束