JavaScript:当我尝试使用DOM时,我的for循环似乎无法正常工作

时间:2019-05-09 13:17:15

标签: javascript loops for-loop dom

问题是,问题似乎出在for循环本身。例如,当我删除其中的代码并放入alert(c);时,它什么也没做。我之前使用相同的方法处理了一些不同的事情,并且效果很好。这是我先前遇到的问题的解决方法:

for (var b = 0; b <= 99; b++) {
    var boxTwo = document.querySelectorAll(".icon2.windowbg[style]")[b];
    boxTwo.style.backgroundColor = "#552222";
}

它完全可以正常工作。不幸的是,关于我的新问题,我不能说同样的话:

for (var c = 0; c <= 99; c++) {
    var boxOneNew = document.querySelectorAll(".icon1.windowbg.topicnew")[c];
    boxOneNew.style.backgroundColor = "#552222";
}

2 个答案:

答案 0 :(得分:1)

您必须将boxTwo移出循环,并且循环条件应为boxTwo.length,以防止发生错误style of null,除非您的boxTwo长度为98

var boxTwo = document.querySelectorAll(".icon2.windowbg[style]");
for (var b = 0; b < boxTwo.length; b++) {
  boxTwo[b].style.backgroundColor = "#552222";
}

在第二个代码中也这样做:

var boxOneNew = document.querySelectorAll(".icon1.windowbg.topicnew");
for (var c = 0; c < boxOneNew.length; c++) {
  boxOneNew[c].style.backgroundColor = "#552222";
}

注意:请确保.icon1.windowbg.topicnew与DOM中的某些内容匹配。

答案 1 :(得分:0)

根据需要,

<td class="icon1 windowbg topicnew">...</td>

代码的另一部分几乎是同一回事,只是没有'topicnew'类。我想做的是更改此元素的背景颜色。 是的,有99个元素。