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 trialJose Guzman
8,789 PointsHow do i select the 3 links inside the nav bar without making changes to the hTML?
Here i'm required to select the 3 links inside the nav bar but i'm not sure how to do that. Im supposed to use either document.getElementsByTagName or document.querySelector...
please help
let navigationLinks = document.querySelectorAll(nav[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
delanobartolomei
Full Stack JavaScript Techdegree Student 14,052 PointsIf you have no control over the HTML, then document.querySelectorAll('nav li a') is your best bet.
Now, querySelectorAll returns a NodeList and NOT an Array. You first need to convert your nodeList to an array like this: let navigationLinks = [].slice.call(document.querySelectorAll('nav li a'));
This way you can access your links with navigationLinks[0], navigationLinks[1], navigationLinks[2].
Elmir Halebic
14,098 PointsI'd do this: let navigationLinks = document.querySelectorAll('nav li a');
remember, querySelectorAll returns an array so if you want to target the first element, then you'd do this: navigationLinks[0]; if you want to target them all, like change their color, you can do it with a for loop to iterate through the entire array. Hope this helps :)
Jose Guzman
8,789 PointsThank you. This was very helpful.