setInterval
будет генерировать div каждую секунду, но рекурсивный вызов test();
просто запустит его бесконечно и никогда не даст обновиться DOM.Затем превышается коллстак, и скрипт умирает.
Не вызывать test()
рекурсивно .Назовите его only from setInterval
.
Затем вам нужно задать элементам div некоторую высоту, чтобы у вас было несколько пикселей для отображения цветов фона.
let test = () => {
for (let i = 0; i <= 9; i++) {
addRandomColorToSquare();
}
}
setInterval(test, 1000);
let addSquareToDOM = function(color) {
let square = document.createElement('div');
square.className = 'square';
square.style.backgroundColor = color;
document.body.appendChild(square);
}
let addRandomColorToSquare = function() {
const randomRed = Math.floor(Math.random() * 256);
const randomGreen = Math.floor(Math.random() * 256);
const randomBlue = Math.floor(Math.random() * 256);
let rgbColor = `rgb(${randomRed}, ${randomGreen}, ${randomBlue})`;
addSquareToDOM(rgbColor);
}
div { display: inline-block; height: 10px; width: 10px; }