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 Interactive Web Pages with JavaScript Selecting Elements and Adding Events with JavaScript Selecting Elements

Hello, I'm having trouble with my code for pt.2 of this task. Is "...getElementsByTagName('last_name')[1]" incorrect?

First task is passing, with "getElementById" just fine, but the second part, I'm certain that "...getElementsByTagName('last_name')[1]" is correct... am I missing something? Thanks!

app.js
var fullName = document.getElementById('full_name');
var lastName = document.getElementsByTagName('last_name')(1);
index.html
<!DOCTYPE html>
<html>
<head></head>
<body>
<h1 id="full_name"><span class="first_name">Andrew</span> <span class="last_name">Chalkley</span></h1>

<script src="app.js"></script>
</body>
</html>

1 Answer

You're close, you want to select the span as part of getElementsByTagName:

var lastName = document.getElementsByTagName('span')(1);

Thank you! Wow, ok so the theory is instead of using the the actual name, because those are more specific, we use the tag type, followed by the index # to specify which one we want to target?

This explanation does a good job:

The getElementsByTagName() method returns a collection of an elements's child elements with the specified tag name, as a NodeList object.

The NodeList object represents a collection of nodes. The nodes can be accessed by index numbers. The index starts at 0.

Gotcha -- Thanks!