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 Getting a Handle on the DOM Return Elements Using CSS Selectors

How do you access descendants in JS?

The link recommendation in the exercise on descendant selectors sends us to a lesson on CSS descendant selectors... how is that related? Specially given that in the exercise we have no access to the CSS exercise.

So I looked it up on Stackoverflow. they recommend to use this syntax let navigationLinks = document.querySelectorAll(":scope nav > ul > li > a"); but the exercise gives error message

Any recommendation please?

app.js
let navigationLinks = document.querySelectorAll(":scope nav > ul > li > a");
let galleryLinks;
let footerImages;
index.html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Treehouse Student | Designer</title>
    <link rel="stylesheet" href="css/normalize.css">
    <link href='http://fonts.googleapis.com/css?family=Changa+One|Open+Sans:400italic,700italic,400,700,800' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" href="css/main.css">
    <link rel="stylesheet" href="css/responsive.css">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
  </head>
  <body>
    <header>
      <a href="index.html" id="logo">
        <h1>Treehouse Student</h1>
        <h2>Designer</h2>
      </a>
      <nav>
        <ul>
          <li><a href="#" class="selected">Work</a></li>
          <li><a href="#">About</a></li>
          <li><a href="#">Contact</a></li>
        </ul>
      </nav>
    </header>
    <div id="wrapper">
      <section>
        <ul id="gallery">
          <li>
            <a href="#">
              <img src="img/numbers-01.jpg" alt="The number 1 painted with colors and textures.">
              <p>Experimentation with color and texture.</p>
            </a>
          </li>
          <li>
            <a href="#">
              <img src="img/numbers-02.jpg" alt="The number 2 painted with various colors blended together.">
              <p>Playing with blending modes in Photoshop.</p>
            </a>
          </li>
        </ul>
      </section>
      <footer>
        <a href="https://twitter.com/treehouse"><img src="img/twitter-wrap.png" alt="Twitter Logo" class="social-icon"></a>
        <a href="https://www.facebook.com/TeamTreehouse"><img src="img/facebook-wrap.png" alt="Facebook Logo" class="social-icon"></a>
        <p>&copy; Treehouse Student.</p>
      </footer>
    </div>
    <script src="app.js"></script>
  </body>
</html>

2 Answers

Steven Parker
Steven Parker
229,644 Points

The querySelectorAll argument uses the same syntax as a CSS selector, so the information about CSS selectors would apply here also.

And a > symbol is used for direct parent-child relationships, but a descendant selector is created by separating the terms with only a space.

Also, the example you looked up is obviously for a much more complicated situation. In this challenge, you'll only need two terms for the selector in each task.

I have the same problem over here. And I tried it now for like 20 mins. Could you maybe get a little more specific?

That would help me a lot!

1000 times "Thank you!"

Thanks feedback most appreciated!

PS: I noticed that either there is a lag or some server-side response issue with the exercises. I've experienced this at least 4 times: the code is entered correctly but an error is displayed. If the page is refreshed and the code entered again (and i really mean it, just a copy paste of the code written before the page refresh ) then a correct answer message appears. (Im (Im on Chrome Version 99.0.4844.83 so i doubt its a browser issue).

Steven Parker
Steven Parker
229,644 Points

You might want to report technical issues directly to the staff. See the instructions on the Support page,

Thank you!!!