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 trialKipaya Kapiga
6,066 PointsGetting error despite right outcome
When I preview my code, each list item is in a different text color, matching what's in the color array. But when I check my work, I get error messages. Here's what I did:
I removed the id attribute from the ul tag, and added a class element to each li element, setting the value to "rainbow"
Here's the script:
let listItems = document.getElementsByClassName('rainbow'); const colors = ["#C2272D", "#F8931F", "#FFFF01", "#009245", "#0193D9", "#0C04ED", "#612F90"];
for (let i = 0; i < colors.length; i ++) {
listItems[i].style.color = colors[i];
}
<!DOCTYPE html>
<html>
<head>
<title>Rainbow!</title>
</head>
<body>
<ul>
<li class="rainbow">This should be red</li>
<li class="rainbow">This should be orange</li>
<li class="rainbow">This should be yellow</li>
<li class="rainbow">This should be green</li>
<li class="rainbow">This should be blue</li>
<li class="rainbow">This should be indigo</li>
<li class="rainbow">This should be violet</li>
</ul>
<script src="js/app.js"></script>
</body>
</html>
let listItems = document.getElementsByClassName('rainbow');
const colors = ["#C2272D", "#F8931F", "#FFFF01", "#009245", "#0193D9", "#0C04ED", "#612F90"];
for (let i = 0; i < colors.length; i ++) {
listItems[i].style.color = colors[i];
}
2 Answers
martinjones1
Front End Web Development Techdegree Graduate 44,824 PointsThis does work, however the challenge is to get all of the list items that are children of the element with the ID of #rainbow.
The code below will achieve this:
let listItems = document.querySelectorAll('#rainbow li');
const colors = ["#C2272D", "#F8931F", "#FFFF01", "#009245", "#0193D9", "#0C04ED", "#612F90"];
for(var i = 0; i < colors.length; i ++) {
listItems[i].style.color = colors[i];
}
The video before the challenge should cover this as well: https://teamtreehouse.com/library/using-css-queries-to-select-page-elements
Kipaya Kapiga
6,066 PointsThanks!