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 trialLizabeth Ketcham
1,627 PointsCan't satisfy q1 of this exercise.
Instructions: select all links in the nav element. code I used: let navigationLinks = document.querySelector('nav').querySelectorAll('li'); This correctly selects the 3 desired elements, though it uses a technique not yet covered in the course. I didn't figure out a more straightforward solution. I've seen the thread about making exercise solutions available - it's time!
let navigationLinks;
let galleryLinks;
let footerImages;
<!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>
1 Answer
andren
28,558 PointsThe problem is that the challenge wants the link elements nested within the nav
elements. Despite the name li
is not a link element, it is a list item element. The link element in html is the a
(anchor) element. If you change your selector from li
to a
then you will be able to pass onto task 2.
Also while your solution works (with the element corrected) it is a bit redundant. The querySelector/querySelectorAll
methods allows you to select elements using CSS selectors. If you have taken any of the CSS courses you should have been introduced to a CSS selector called a descendant selector.
The descendant selector is one of the most basic CSS selectors and allows you to easily select elements that are nested within other elements. To use the selector you simply specify multiple elements separated by a space, the last element you specify will be selected but only if it is nested within the other elements you specified. So to select all a
elements nested within nav
elements you would type this:
let navigationLinks = document.querySelectorAll('nav a') ;
The descendant selector can also be used with id and class selectors in place of plain tag selectors.
Umesh Ravji
42,386 PointsUmesh Ravji
42,386 PointsYou left li in there :)
let navigationLinks = document.querySelectorAll('nav a');
[Edited]
andren
28,558 Pointsandren
28,558 PointsArgh I only left it in for about two minutes before editing it, I hoped no one noticed :). Oh well that's what I get for making the same mistake as the poster did.
Though while we are at pointing out minor mistakes in each other's posts, you use the
querySelector
method in your example. For this task you have to usequerySelectorAll
since multiple elements are being selected.I guess that makes us even .
Umesh Ravji
42,386 PointsUmesh Ravji
42,386 PointsI never noticed, we even then :p