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 Getting a Handle on the DOM Select by ID

I'm super confused

Someone please tell me what I'm doing wrong.

app.js
// Complete the challenge by writing JavaScript below
const button = button.getElementById('button', btn-phrase);

button.addEventListener('click', () => {
  alert(input.value);
});
index.html
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Phrase Sayer</title>
  </head>
  <body>
    <p><label for="input-phrase">Type a phrase</label></p>
    <p><input type="text" id="input-phrase"></p>
    <p><button id="btn-phrase">Say Phrase</button></p>
    <script src="app.js"></script>
  </body>
</html>

2 Answers

Steven Parker
Steven Parker
231,275 Points

There's a few issues here:

  • you can't reference "button" while you are creating it
  • generally (and in this case for sure), you will call getElementById on the document element
  • the getElementById function takes only one argument, the ID
  • in this case, the ID should be a literal (enclosed in quotes)

So a corrected version might look like this:

const button = document.getElementById('btn-phrase');

I ended up figuring it out. Thank you.