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

Jared Bilton
PLUS
Jared Bilton
Courses Plus Student 2,061 Points

Got the first part but no sure how to select the second SPAN element

I think document.getElementsByTagName is correct but that is as far as I have gotten

app.js
var fullName = document.getElementById('full_name');
var lastName = document.getElementsByTagName('span');
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>

I think if its the second span element it would be ("span")[2] ?

3 Answers

document.getElementsByTagName() returns an array. Use the array syntax to get the individual items out. so if var spans = document.getElementsByTagName('span'); then the first span is spans[0] and the second span is spans[1]. If there were more elements it would be span[2], [3], [4]... etc. Arrays start at 0 instead of 1.

Vance Rivera
Vance Rivera
18,322 Points

You could also use the getElementsByClassName("last_name") to get the result your are looking for. I would go this route especially if you are going to uniquely identify elements by the class. Anytime you uniquely identify an element I'd suggest traversing the dom by that identifier.

Jakob Wozniak
Jakob Wozniak
17,896 Points

Like Vance said, I think the getElementsByClassName would work better for both. You're using getElementById for the first one, when it's really a class you're looking for.

Hope this helps!