JavaScript JavaScript and the DOM Getting a Handle on the DOM Selecting Multiple Elements

Pedro Bonilla
Pedro Bonilla
Full Stack JavaScript Techdegree Student 4,778 Points

document.querySelectorAll not working in code challenge.

I have tried multiple times and ways to as well as watched the video but for some reason it is not working. It is probably something simple.

js/app.js
var listItems = document.querySelectorAll('li #rainbow');
var colors = ["#C2272D", "#F8931F", "#FFFF01", "#009245", "#0193D9", "#0C04ED", "#612F90"];

for(var i = 0; i < colors.length; i ++) {
  listItems[i].style.color = colors[i];    
}
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>

2 Answers

Ella Ruokokoski
Ella Ruokokoski
20,782 Points

If you look at index.html you see that the ul element with the id 'rainbow' is a is an unordered list element and the li elements inside it are its children. So in your querySelectorAll statement the child is written before the parent but it should be the other way around because you want to select all children of the #rainbow element.