Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

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];