Home » Jquery » The $ dollar sign

The $ dollar sign

Posted by: admin November 30, 2017 Leave a comment

Questions:

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. 🙂

Answers:

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.

Questions:
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 $.

Questions:
Answers:

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.

Questions:
Answers:

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.

Questions:
Answers:

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.

Questions:
Answers:

In this case, $selector is an example of Hungarian notation. It is there so that you know that $selector is a jQuery object.

If you make it your custom to always have jQuery objects start with $ if you suddenly use one wrong it will look wrong which will help you find a problem in your code.

The language couldn’t care less. They could have just as well named the jQuery function J or anything else; the $ is not a special symbol.

Questions:
Answers:

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

Questions:
Answers:

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.

Questions:
Answers:

“$” 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.