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 trialSteve Fan
8,218 PointsWhy we need to use $('<div id="overlay"></div>') but not '<div id="overlay"></div>'.
In the video, the instructor set: var overlay = $('<div id="overlay"></div>');
But what we need to fill in the "append()" is: '<div id="overlay"></div>'
So why he use $('<div id="overlay"></div>') but not '<div id="overlay"></div>'
And what $() really do in this command?
Could someone help me to explain this please.
1 Answer
Seth Kroger
56,413 Pointsappend() can take a variety of arguments, including string, HTMLand jQuery object. $('<div id="overlay"></div>')
turns the HTML into a jQuery object. I'd have to check the code for the project to be certain, but I'm fairly sure you'll be using overlay
again later in the code and that's why it's stored in a variable/jQuery object.
Steve Fan
8,218 PointsSteve Fan
8,218 PointsThanks, Seth K. I get it now. Could I ask you one more question? Why we cannot use normal variables such as "overlay" or "image" But we have to use jQuery objects such as "$overlay", "$image" all the time?
Is there any advantage when using jQuery objects?
Seth Kroger
56,413 PointsSeth Kroger
56,413 PointsBeginning a variable name with "$" when it's supposed to be a jQuery object is just a stylistic convention and doesn't necessarily have to be followed.
Steve Fan
8,218 PointsSteve Fan
8,218 PointsSo you mean we also can just leave the variables alone and use it like normal. Everything still stay the same, isn't it?
Steve Fan
8,218 PointsSteve Fan
8,218 PointsI just checked it. Without $, when I try to run the webpages, It noticed something in console like: overlay.append(image); is not a function //I took off all $ in the js file
I doubt that $ have to be appear all the time or I just get lost?