JavaScript 数组在循环外是正确的,但在循环内未定义
JavaScript Array is correct outside loop but undefined inside loop
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);
}
}
我只是制作一个简单的待办事项列表,允许用户在按下执行此功能的"删除按钮"时删除所有项目。
我尝试过的:
- 删除 listItemHolder 并仅使用 .removeChild(listArray[i])。
- 将 for 循环的周期更改为 i<4
任何关于正在发生的事情的解释将不胜感激!谢谢
它是 for 循环右括号后面的;
。
删除它
for (var i = 0; i < listArray.length; i++) {
发生了什么事?
您有一个空的 for 循环体,带有此;
循环后i
的值为 listArray.length
且listArray[listArray.length]
未定义
您还必须向后循环。
所以相反,你应该使用
for (var i = listArray.length-1; i >= 0; i--) {
否则,您只会删除列表中的每一项。
怎么会这样?看这里首先你有这个列表
0: todo 1
1: todo 2
2: todo 3
3: todo 4
当你删除了第一个时,你就有了这个
0: todo 2
1: todo 3
2: todo 4
而你的计数变量 i 的值为 1。下一个要删除的是待办事项 3
0: todo 2
1: todo 4
这是结束
相关文章:
- 为什么“;未定义的“;在JavaScript中结束循环
- $.每个jquery循环打印一个“;未定义的“;对于getJSON请求后的每个元素,网格数据都会完美地打印出来
- 使用arr[i]循环遍历数组==未定义
- 为什么在循环中返回时函数返回值未定义
- 未捕获的类型错误:未定义不是函数,在中为循环创建了对象
- Waypoint的循环,退出循环后属性未定义
- 对象在循环中运行时未定义,但在按顺序执行时未定义
- 使用while循环在printArray函数中获取一个额外的未定义值
- 如何使此循环工作?它's返回未定义的语言js
- Javascript数组中未定义的值是否使用任何内存或在for in循环中迭代
- 未捕获的typeerror无法读取属性'0'for循环中未定义的
- 使用jQuery'在数组中循环;s中的每一个都会在生成字符串时在开头产生一个未定义的值
- 嵌套的“for”循环 - 数组未定义
- 在 For 循环中的闭包中未定义
- javascript 中的框架对象循环是未定义的
- 为什么以下 forEach 数组循环未返回未定义
- 当在 Javascript 中使用许多 for 循环时,输出是未定义的
- 用于从许多带有“for”循环的URL中获取HTML信息的X射线使对象未定义
- 当我把它放到setInterval循环中时,event.clientY是未定义的
- querySelectorAll循环“未定义”