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 Working with jQuery Collections The .each() method

Anik Devaughn
Anik Devaughn
7,751 Points

Challenge Task 1 of 1 : Inside the jQuery each() method, use prepend() to add an '<input type="checkbox"/>' to the begin

Hi, I don't understand what they exactly asking. But i try doing this way and it gives me error: $('.favorite-things li').each(function() { // Write code here const input = $(this).attr('<input type="checkbox"/>'); $(this).prepand(input); });

Error says: Bummer! There was an error with your code: TypeError: 'undefined' is not a function (evaluating '$(this).prepand(input)')

I want to know what mistakes I am making and how should i think? Any help is appreciated.

index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <title>Document</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <h2>My Favorite Things</h2>

    <ul class="favorite-things">
        <li>Kittens</li>
        <li>Rainbows</li>
        <li>Unicorns</li>
        <li>Sprinkles</li>
    </ul>

    <script
    src="jquery-3.2.1.min.js"></script>
    <script src="app.js"></script>
</body>
</html>
app.js
$('.favorite-things li').each(function() {
  // Write code here
  const input = $(this).attr('<input type="checkbox"/>');
  $(this).prepand(input);
});

1 Answer

Steven Parker
Steven Parker
231,261 Points

You don't need that intermediate variable or that code involving "attr". You can pass the string with the HTML in it directly to the "prepend" method. And be careful of the spelling of "prepend" (two "e"s, no "a").