I have something simple like this:
But since I’m going to reuse the selector I cache it with:
var $selector = $(selector);
So I end up with:
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
$selector unnecessary because the jquery object has already been declared in
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. 🙂
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.
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
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:
var $i = 1; var i = 1;
Both i and $i have the same value, and both are perfectly legitimate variable names.
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.
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.
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
selector as the argument.