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) Making Changes to the DOM Modifying Elements

Works but is wrong??

I don't know why it doesn't let me pass this, it works. The anchor changes when typing. You must keep track of the value when it changes. When you fire this up, the "value" is empty so is the "anchor". This why i did a listener event.

I also don't know why "valuechange" isn't working but the "keyup" does, I'm bit confused.

app.js
const linkName = document.getElementById("linkName");
let inputValue = link.value;

linkName.addEventListener('keyup', function(){
    document.getElementById("link").innerHTML = linkName.value;
});
index.html
<!DOCTYPE html>
<html>
    <head>
        <title>DOM Manipulation</title>
    </head>
    <link rel="stylesheet" href="style.css" />
    <body>
        <div id="content">
            <label>Link Name:</label>
            <input type="text" id="linkName">
            <a id="link" href="https://teamtreehouse.com"></a>
        </div>
        <script src="app.js"></script>
    </body>
</html>

Omg, TreeHouse you can't be serious.

let inputValue = document.getElementById("linkName").value;

document.getElementById("link").innerHTML = linkName.value;

It accepts this but it's adding a empty string to the innerHTML wow. The result would be like not writing any JS at all. I use my brain and this made no sense at all.

1 Answer

David McNeill
David McNeill
44,438 Points

Hi Damian,

I think you might be trying to do a lot more than the challenge is asking! The challenge is just about fetching values and applying them to other elements, no need to worry about events.

They tried to hide a hint in the question itself by using the phrase 'text content'. There is a property called textContent, which is a bit more specific than the innerHTML you're using.

The following line will pass the challenge:

document.getElementById("link").textContent = inputValue;

Hope this helps!