Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialMahfuzur Rahman
3,204 Pointsdocument.write() inside for loop
if I put document.write(html); inside for loop I get way too many colored divs. But if I put document.write outside for loop it's okay. I get only 10
var html = ''; var red; var green; var blue; var rgbColor;
for (i=0; i<10; i++) { red = Math.floor(Math.random() * 256 ); green = Math.floor(Math.random() * 256 ); blue = Math.floor(Math.random() * 256 ); rgbColor = 'rgb(' + red + ',' + green + ',' + blue + ')'; html += '<div style="background-color:' + rgbColor + '"></div>';
document.write(html);
}
1 Answer
Steven Parker
231,268 PointsIf you put it inside the loop, you won't need to accumulate in the "html" varable and replace it:
document.write('<div style="background-color:' + rgbColor + '"></div>');
Jake Cooper
Courses Plus Student 56,854 PointsJake Cooper
Courses Plus Student 56,854 PointsIts because of
html +=
that there are too many blocks when you use
document.write(html);
inside the loop.
either keep it outside the loop effectively writing it once it collected all the html OR just use
html =
without the
+
and you can write from within the loop