Javascript 未捕获类型错误:无法设置属性';价值';未定义//for和while循环的差异?
我是JS的新手,刚开始编程 我正在用一个按钮制作一个简单的网页,允许文本、链接和背景改变颜色 工作正常,但在consonle屏幕上,我收到一条错误消息 我看了同样的问题,但还是不明白Javascript 未捕获类型错误:无法设置属性';价值';未定义//for和while循环的差异?,javascript,loops,typeerror,Javascript,Loops,Typeerror,我是JS的新手,刚开始编程 我正在用一个按钮制作一个简单的网页,允许文本、链接和背景改变颜色 工作正常,但在consonle屏幕上,我收到一条错误消息 我看了同样的问题,但还是不明白 > adsf 因为在中为..使用时,一次只能从数组中获取一项,而不是索引 for(让链接进入链接){ link.style.color='red'; } 当使用while时,您有一个索引来迭代数组(让它成为i) i表示迭代的当前索引,因此访问数组中的项就像links[i]不,在for…in循环中,您一次获
>
adsf
因为在中为..使用时,一次只能从数组中获取一项,而不是索引
for(让链接进入链接){
link.style.color='red';
}
当使用while
时,您有一个索引来迭代数组(让它成为i
)
i
表示迭代的当前索引,因此访问数组中的项就像links[i]
不,在for…in
循环中,您一次获得对象的可枚举属性。这也会导致错误。很抱歉,访问对象属性需要object.keys
才能正常工作(例如let obj={hello:'world};for(let key of object.keys(obj))console.log(key)
)我真的不明白这与这个问题或你的答案有什么关系。假设querySelectorAll()
确实找到了元素,循环的第一次迭代链接将是字符串“0”
。字符串没有style
属性,因此style
将未定义,从undefined
读取color
将抛出错误。这个答案完全错了。这能回答你的问题吗?将(链接中的链接)的更改为(让链接=0;链接