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

Kylie Soderblom
Kylie Soderblom
2,703 Points

How do I get the links and links only in the nav element.

navigationLinks = document.getElementsByTagName("nav).children; navigationLinks = document.querySelector("nav").children; Tried both without success. What am I missing?

js/app.js
let navigationLinks = document.getElementsByTagName("nav").children;
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>
Kylie Soderblom
Kylie Soderblom
2,703 Points

ok. Now I've read the other questions. I've now learned that you can place an element and its child together like: document.querySelectorAll('nav a'). or even ('ul li') etc. But where in the videos was this information? I'm apparently audio blind. I've rewatched the videos, took notes yet totally missed this golden nugget.

1 Answer

Hi Kylie!

Evidently, you figured it out already.

Here's a little more info, anyway:

https://www.w3schools.com/css/css_combinators.asp

Also, you probably already figured this out, too, but with querySelectorAll, to reference ids, you do need a # and for classes, you need a .

But, to really answer your question, here are some places that Treehouse covers descendant selectors (other prerequisite courses):

https://teamtreehouse.com/library/descendant-selectors-2

https://teamtreehouse.com/library/css-selectors-quickstart/pseudoclasses-and-combinators/descendant-selectors

I hope that helps.

Stay safe and happy coding!