The $ dollar sign

Viewed 27853

I have something simple like this:

$(selector).append("somestuff");

But since I'm going to reuse the selector I cache it with:

var $selector = $(selector);

So I end up with:

$selector.append("somestuff");

My question is, should I be doing that, or should I be doing:

var selector = $(selector);
selector.append("somestuff");

Trying either one, both works. Which method is correct, and why? Is the $ in $selector unnecessary because the jquery object has already been declared in $(selector)?


Edit

Thanks for the answers. It seems very simple and quite clear. Still, there seems to be disagreement over whether or not I should use $ in the variable. It would be nice for everyone to vote up an answer. :)

9 Answers

$ is just a name - names in JavaScript can contain dollar signs, and can consist of just a dollar sign.

Whether you use a dollar sign in your name isn't relevant to jQuery - there's nothing special about the dollar sign, except that jQuery defines a function called $.

I've seen it done both ways. All you are doing is creating a variable with the name '$selector', so they are functionally equivalent. The nice thing about it is that it does make them easy to pick out as jQuery objects.

The cash sign is just an alias for the jQuery function. Starting the variable name with $ has no effect on that variable.

It is customary though, especially in jQuery plugin development, to use variables already wrapped in jQuery with a cash sign, so you know you can call jQuery methods, without having to wrap them.

RichieHindle is correct. To expand:

Javascript variables allow the '$' character. So for example, you could have the following:

var $i = 1;
var i = 1;

Both i and $i have the same value, and both are perfectly legitimate variable names.

jQuery assigns itself (the jQuery object) to '$' because traditionally, that's what Javascript frameworks have done for selectors. There's no inherent meaning to '$' beyond what jQuery gives it.

I like to prefix all my jQuery object names with $ so that I know it's actually a jQuery object, not a DOM reference.

It's a good naming convention.

Yeah.

jQuery always returns a jQuery object. It's what allows chaining.

You've already defined the variable so you get a jQuery object back so $ is unnecessary

I don't believe that you need to add the jQuery selector to jQuery objects (since it's already a part of the object). We don't add the selector and haven't run into any problems.

"$" is a function in jQuery. So when you call $(selector), you're actually calling the function $ with selector as the argument.

Generally, don't use the "$" as part of a variable name for javascript. You will only confuse yourself.

Related