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 trialIndu khan
169 PointsWhy getting error? Please explain
Why getting error? Please explain
let navigationLinks = document.querySelectorAll('li');
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>
2 Answers
Steven Parker
231,269 PointsThe correct elements are not being selected.
The challenge ask you to "select all links in the nav element". But a link is represented by an "a" (anchor) element and "li" represents a list item.
But you also don't want every "a" element, so you might want to create a descendant selector by combining it with "nav" to return only those links in that element.
Joe Beltramo
Courses Plus Student 22,191 PointsYou need to select the links in the navigation section. In order to do so, you need to narrow down your selector choice in the querySelectorAll
method.
First add to the front of your string, nav
since you only want to focus on things in the nav area. Then you can either remove and replace the li
with a
or add the a
after the li
. Adding it after will be more descriptive so probably better practice to add it after. The reason you want the a
tag is that the a
tag is the anchor tag, which is the link itself. (In HTML)
So you are wanting to have something like this:
...querySelectorAll('nav li a')
Steven Parker
231,269 PointsI believe the "best practice" is to use the fewest components in the selector that will return the correct element set.
Joe Beltramo
Courses Plus Student 22,191 PointsDepends on your intentions. Using the fewest components may not be what you want, as nav a
in this case will result in a correct element set UNTIL a tag is added outside of the unordered list for some reason. nav ul li a
or nav li a
will produce the same result for every item in the list an disregard all items outside the list but still live within the nav tag.
Ideally though, alongside your point. the fewest components would be better suited to proper id/class naming, therefore allowing for you to be concise but specific.
Steven Parker
231,269 PointsBut if you revisit the requirement to "select all links in the nav element", it doesn't say to further restrict it only links also in a list. So if there were links outside the list, disregarding them would probably cause the selection to fail.
Joe Beltramo
Courses Plus Student 22,191 PointsPer the requirements, yes, nav a
will suffice and had there been a
tags outside of the list, they would not have been selected causing a fail. Due to what was given, I chose to be specific as there are only a
tags in the list. The point again was that specificity can lead to more controlled results. A best practice.