我正在学习 JavaScript,遇到了一个我不明白的问题。
我有一个用于测试的简单网页,在这里我尝试使用 for-in 循环将所有 h1 元素的背景颜色更改为红色,并将所有 h2 元素的背景颜色更改为蓝色。
var h1 = document.getElementsByTagName("h1");
var h2 = document.getElementsByTagName("h2");
for (i in h1) {
h1[i].style.backgroundColor = "red";
}
for (i in h2) {
h2[i].style.backgroundColor = "blue";
}
当我运行此代码时,所有 h1 元素的背景都按预期变为红色。但是,h2 元素都没有改变。
我在控制台中收到一条错误消息: TypeError: h1[i].style is undefined
我不明白这一点,但是它引用的代码似乎运行得很好。
如果我注释掉h1[i].style.backgroundColor = "red"; 并刷新页面,所有的 h2 元素都会变为蓝色。
然后我在控制台中收到类似于第一个错误:TypeError: h2[i].style is undefined
有谁知道发生了什么,为什么我的代码没有同时运行这两个循环?看起来它运行良好,直到第一个循环结束,然后出错并停止运行,因此不运行第二个循环。
提前致谢!
幕布斯6054654
慕田峪7331174
相关分类