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 trial

JavaScript JavaScript and the DOM (Retiring) Getting a Handle on the DOM Selecting Multiple Elements

what is the proper answer?

I don't fully understand the question and everything that I tried was wrong. what is the correct answer

index.html
<!DOCTYPE html>
<html>
  <head>
    <title>Rainbow!</title>
  </head>
  <body>
    <ul id="rainbow">
      <li>This should be red</li>
      <li>This should be orange</li>
      <li>This should be yellow</li>
      <li>This should be green</li>
      <li>This should be blue</li>
      <li>This should be indigo</li>
      <li>This should be violet</li>
    </ul>
    <script src="js/app.js"></script>
  </body>
</html>
js/app.js
let listItems;
const colors = ["#C2272D", "#F8931F", "#FFFF01", "#009245", "#0193D9", "#0C04ED", "#612F90"];

for(var i = 0; i < colors.length; i ++) {
  listItems[i].style.color = colors[i];    
}

2 Answers

Aaron Price
Aaron Price
5,974 Points

in js/app.js, line 1, you need to assign listItems to an array of all list items. Because on line 5, it's iteratively assigning the color style to each element of that array

tldr: let listItems = document.querySelectorAll("li");

thanx aaron, however I'm still getting the fallowing message: SyntaxError: js/app.js: Unexpected token d (1:14)

Actually, it does work. thanks a lot

Briain Corroon
Briain Corroon
13,689 Points

Although that answer passes the challenge, it is not the correct answer. The only reason it passes is because the only li elements on the html page are in the unordered list.

We have some JavaScript code that will cycle over list items and apply colors from an array called colors. The code will apply the first color to the first list item, the second color to the second list item and so on. But the code is not complete. On line 1 of app.js, set the variable listItems to refer to a collection.

The collection should contain all list items in the unordered list element with the id of rainbow.

The correct answer is to use ('#rainbow li') to select the list items within the unordered list with the id of rainbow.

let listItems = document.querySelectorAll("#rainbow li");

Oh , I understand. Thanx a lot.