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 jQuery Basics Understanding jQuery Events and DOM Traversal Adding New Elements to the DOM

Shaun Wong
Shaun Wong
14,489 Points

Unexpected AST node type passed to processCallExpression method: Literal?

This is for Challenge Task 1 of 2 In app.js, use jQuery to create a new <li> element containing the student name "Sam Smith", and save your new element to a variable called $newStudent.

https://teamtreehouse.com/library/jquery-basics-2/understanding-jquery-events-and-dom-traversal/adding-new-elements-to-the-dom

When trying to validate my code, this is the error I get below. Unexpected AST node type passed to processCallExpression method: Literal is the error

My code below.

index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <title>Document</title>
</head>
<body>
    <h2>Student List</h2>

    <ul class="student-list">
        <li>James McAvoy</li>
        <li>Alena Holligan</li>
        <li>Wade Christensen</li>
        <li>Matt Krzyzynski</li>
    </ul>

    <script
    src="jquery-3.2.1.min.js"></script>
    <script src="app.js"></script>
</body>
</html>
app.js
var $newStudent = "Sam Smith";

$('.student-list').append('<li>' + $newStudent + '</li>');

1 Answer

Shaun Wong
Shaun Wong
14,489 Points

Nevermind, I Found out what I did wrong.

For anyone looking for the solution to this, I was supposed to store it in the variable.

var $newStudent = $('<li>Sam Smith</li>');
Roger Hwang
Roger Hwang
3,851 Points

I got this error, but because I was missing the "$()" when creating the list. Why do we need "$()" if we are not trying to select a list in the DOM? Rather, we are just creating a new list.

Shaun Wong
Shaun Wong
14,489 Points

Roger, we are still using a jquery method, so it is required to use it.

We are creating a jquery object in this case and assigning it to the $newStudent variable.

Read more about it here. https://learn.jquery.com/using-jquery-core/jquery-object/