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!

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 Select a Page Element By Its ID

Amandeep Pasricha
Amandeep Pasricha
14,932 Points

Why were we allowed to write .value after myTextInput?

is myTextInput a global object or something? Can someone explain this conceptually? Thanks

3 Answers

Steven Parker
Steven Parker
228,026 Points

It's a global that was created by the "const" statement on line 3 as a reference to an HTML element which was selected by ID. Since the element it refers to has a "value" property, you can write ".value" after it to access that property.

Amandeep Pasricha
Amandeep Pasricha
14,932 Points

Steven Parker Oh wait I get it. Okay let me try to explain: the global object document has various properties and ID's. The variable contains a reference to this global object, so naturally, value is just one of those properties that the global object, document, contains? Is this correct? When you say "Since the element it refers to has a "value" property", aren't you just referring to the global document object?

Steven Parker
Steven Parker
228,026 Points

The code is specifically referring to the <input> element that has the ID of "myTextInput". It's that object (not the global object) which has the "value" property being accessed.

Amandeep Pasricha
Amandeep Pasricha
14,932 Points

Steven Parker I think what I forget sometimes is that almost everything in javascript is an object containing properties which can be accessed using dot notation. So in this case, the <input> element is a document object, and it contains a set of properties and methods.

Is my interpretation correct?