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 JavaScript and the DOM (Retiring) Getting a Handle on the DOM Selection Review

David Donohue
David Donohue
1,110 Points

What am I doing wrong?

I'm trying to answer the question about accessing a body element and assigning it to the variable 'body' using the document.getElementsByTagName() method. why does the following code not work?

const body = document.getElementsByTagName('body');

2 Answers

Charles Wanjohi
Charles Wanjohi
9,235 Points

The method document.getElementsByTagName() returns a collection (an array) thus to obtain the body element, get the first element of the collection returned i.e:

document.getElementsByTagName('body')[0];

recal a document can have only one body element?

David Donohue
David Donohue
1,110 Points

Thanks for the answer!! Just out of curiosity, if there is only a single element, why do I need to specify ?

Charles Wanjohi
Charles Wanjohi
9,235 Points

Because the method is built to return a collection of elements.And as such it traverses through the entire document looking for elements with that tag name .In this case it finds only one element which it adds to the collection which it returns

Try accessing the first element found with that name:

document.getElementsByTagName('body')[0];