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

isaiah carter
isaiah carter
4,745 Points

In this challenge, you're going to select various elements from index.html. First, select all links inside the <nav> ele

In this challenge, you're going to select various elements from index.html. First, select all links inside the <nav> element and assign them to the variable navigationLinks. (HINT: Use a descendant selector to match elements that are descendants of an element.)

js/app.js
var navigationLinks = document.querySelector("nav.li");
var galleryLinks;
var 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>

Have a blessed day.

5 Answers

Emmanuel C
Emmanuel C
10,636 Points

The task is asking you to select ALL of specific elements. That would require the use of document.querySelectorAll(); Also to reach decedent nodes, youll need to seperate them with whitespace, instead of dot. So the fist challenge, would be

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

All links(a) within the nav tag.

What does "a" do, does "a" mean all, so if you wanted to select all of something you could just type the "thing" and then "a." Say I wanted to select all links inside an unordered list with the ID gallery and assign them to the variable galleryLinks. then would I just do: let galleryLinks = document.quertySelectorAll("#gallery a"); Would this work?

Thank you, have a blessed day.

Hi Isaiah,

First of all you need to get all of the links, so just update the code to use querySelectorAll.

Next, you can then use the CSS Descendant Selector to target the elements you want to grab.

Your updated code will then look like that below, hope this helps.

var navigationLinks = document.querySelectorAll("nav li a");
Mary Gertrude Lie-Nielsen
seal-mask
.a{fill-rule:evenodd;}techdegree
Mary Gertrude Lie-Nielsen
Full Stack JavaScript Techdegree Student 5,144 Points

this was helpful, for some reason I thought: var navigationLinks = document.querySelectorAll("nav > li a") was the answer since <li> and <a> are descendants of <nav>. Any reason why this does not work?

I'm also curious what does the "a" mean in the code block above? 'nav li a'

var navigationLinks = document.querySelectorAll("nav li a");

It's the "a" before "href" --- I believe "a" means a link is coming?

<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>

Nurgul Amat
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
Nurgul Amat
Front End Web Development Techdegree Graduate 21,456 Points

let navigationLinks=document.querySelectorAll('nav a'); let galleryLinks=document.querySelectorAll('#gallery li a'); let footerImages=document.querySelectorAll('footer img');

Eugene Skom
Eugene Skom
6,059 Points

It was helpful,thanks!