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 DOM Manipulation

Rachel Hutchings
Rachel Hutchings
4,293 Points

Appending variable element to an HTML element

This exercise was going really easily until it came to using appendChild. It didn't work for me during the video, and I compared my code to his multiple times but it still wasn't working for me. Then of course, come here and it still isn't! I am supposed to "Append the newParagraph element to the DIV element." However, with the code I have right now it says that it is causing task one to be invalid (assigning newParagraph var to p element - in line 2)

app.js
const contentDiv = document.getElementById("content");
let newParagraph = document.createElement('p');
newParagraph.className = 'panel';
newParagraph.appendChild(div);
index.html
<!DOCTYPE html>
<html>
    <head>
        <title>DOM Manipulation</title>
    </head>
    <link rel="stylesheet" href="style.css" />
    <body>
        <div id="content">

        </div>
        <script src="app.js"></script>
    </body>
</html>

1 Answer

Steven Parker
Steven Parker
231,271 Points

The error message may be misleading.

You've introduced an error (by referencing an undefined item "div") and since the previous tasks are re-tested first, it thinks it's an issue with task 1.

But other than div being undefined, you have the arguments to appendChild reversed. The method should be applied to the element you are appending to, and the argument should be the element that you are appending. So in this case:

contentDiv.appendChild(newParagraph);