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 Practice Selecting Elements

Bashir Shafii
seal-mask
.a{fill-rule:evenodd;}techdegree
Bashir Shafii
Front End Web Development Techdegree Student 5,022 Points

selecting list items in a nav element with javascript methods

Why is the code not passing?

js/app.js
let navigationLinks = document.getElementsByTagName("nav");
let galleryLinks;
let footerImages;
index.html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Nick Pettit | 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>Nick Pettit</h1>
        <h2>Designer</h2>
      </a>
      <nav>
        <ul>
          <li><a href="index.html" class="selected">Portfolio</a></li>
          <li><a href="about.html">About</a></li>
          <li><a href="contact.html">Contact</a></li>
        </ul>
      </nav>
    </header>
    <div id="wrapper">
      <section>
        <ul id="gallery">
          <li>
            <a href="img/numbers-01.jpg">
              <img src="img/numbers-01.jpg" alt="">
              <p>Experimentation with color and texture.</p>
            </a>
          </li>
          <li>
            <a href="img/numbers-02.jpg">
              <img src="img/numbers-02.jpg" alt="">
              <p>Playing with blending modes in Photoshop.</p>
            </a>
          </li>
        </ul>
      </section>
      <footer>
        <a href="http://twitter.com/nickrp"><img src="img/twitter-wrap.png" alt="Twitter Logo" class="social-icon"></a>
        <a href="http://facebook.com/nickpettit"><img src="img/facebook-wrap.png" alt="Facebook Logo" class="social-icon"></a>
        <p>&copy; 2016 Nick Pettit.</p>
      </footer>
    </div>
  <script src="js/app.js"></script>
  </body>
</html>

1 Answer

Jonathan Grieve
MOD
Jonathan Grieve
Treehouse Moderator 91,253 Points

Hi Bashir,

You're attempting to select a single nav element with your code, so it's finding one item instead of the 3 the challenge wants.

The elements you want to target are inside the nav element. Select the list item elements that are inside the nav element, in the same way you tried with the nav element. :-)

Bashir Shafii
seal-mask
.a{fill-rule:evenodd;}techdegree
Bashir Shafii
Front End Web Development Techdegree Student 5,022 Points

I am not sure if that will work. As you know, there are many 'li' tags in the document but the question is asking for the links within the nav element. How do I accomplish this? . I tried (nav > li) but that doesn't work. I tried to use index arrays but that only returns one at a time? I am stuck :(

Jonathan Grieve
Jonathan Grieve
Treehouse Moderator 91,253 Points

Hi there,

So, I got it wrong myself, I assumed the challenge was about the getElementsByTagName method because that was the first method you tried. But you need a different method. To ensure you get the 3 items the challenge is asking for, you need to use the querySelectorAll method, and pass in the string nav ul.

This will make JavaScript only targets list item elements inside a nav element.

let navigationLinks = document.querySelectorAll("nav a");