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

E M
E M
2,794 Points

How do you select all links inside the <nav> element and assign them to the variable navigationLinks?

I watched the descendants' video and tried using document.querySelectorAll('nav ul'); but get an error. Also tried 'nav li'. This is a tricky challenge for those who don't know CSS...

js/app.js
let navigationLinks = document.querySelectorAll('nav ul');
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>

2 Answers

Dimitar Dimitrov
Dimitar Dimitrov
8,939 Points

You need to select all "Links" inside nav. The HTML tag for links is "<a>" .

This is the code you need to select all links inside <nav>:

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

E M
E M
2,794 Points

Thanks so much. Really appreciate it.

Zimri Leijen
Zimri Leijen
6,955 Points

to add to what Dimitar Dimitrov said, <a> is links (technically known as an anchor tag, hence the a), <li> stands for list item and <ul> stands for unordered list.

While in your case it would indeed select all the links because they are grandchild elements of the unordered list, and child elements of the list items, that's not exactly what was asked.

Those are html tags by the way, not css. Although you can reference them with css selectors.