JavaScript: мой цикл for, кажется, не работает, когда я пытаюсь работать с DOM - PullRequest
1 голос
/ 09 мая 2019

Дело в том, что проблема, похоже, исходит от самого цикла 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 ]

1 голос
/ 09 мая 2019

Вы должны вынуть 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";
}

Doтакже для вашего второго кода:

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

Примечание: убедитесь, что .icon1.windowbg.topicnew соответствует чему-то в DOM.

0 голосов
/ 09 мая 2019

Как вы хотели,

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

Другая часть кода - это почти то же самое, просто нет класса 'topicnew'. Я пытаюсь изменить цвет фона этого элемента. И да, есть 99 элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...