首页 > 解决方案 > JavaScript:当我尝试使用 DOM 时,我的 for 循环似乎不起作用

问题描述

问题是,问题似乎来自 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";
}

标签: javascriptloopsfor-loopdom

解决方案


您必须将 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 中的某些内容。


推荐阅读