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 triallexter acosta
7,222 PointsI cannot determine the correct query to get all the 'li' under the 'nav'
i need to select all the links in the nav, easier if 'li' have classes or id
let navigationLinks = document.querySelectorAll('nav > ul > li[href$="html"]');
let galleryLinks;
let footerImages;
//ocument.getElementsByTagName('nav + li');
<!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>© 2016 Nick Pettit.</p>
</footer>
</div>
<script src="js/app.js"></script>
</body>
</html>
3 Answers
andren
28,558 PointsYou seem to be overthinking or misunderstanding the problem a bit. Your selector is way more specific than it needs to be, and it is targeting the wrong element. Links in HTML are represented by the <a>
element, not the <li>
element. So if you changed your selector to this:
let navigationLinks = document.querySelectorAll('nav > ul > li > a[href$="html"]');
It would work, but again be way more specific than it needs to be.
When selecting elements it's usually best to make the selector as broad as it can be while still selecting the right elements, as this makes it more flexible and resistant to breaking from minor changes to the website in the future. In this case a descendant selector that targets the <a>
elements that descent from <nav>
elements like this:
let navigationLinks = document.querySelectorAll('nav a');
Will work just as well, and be far less specific.
Jennifer Nordell
Treehouse TeacherHi there! I received your request for assistance. It seems to me like you simply misread the question. The challenge is asking you to get all the links inside the <nav>
, but you are trying to get all the list items. A link is denoted with the anchor tag or <a>
, while a list item is denoted with the <li>
tag.
So, to get all links in the nav element, I would use the selector 'nav a'
.
Hope this helps!
lexter acosta
7,222 PointsThanks Jennifer and Andren :) Appreciate the quick response