56

I know it's a silly question but I am a bit confused with this. For example, if I have an input with an ID: rad1, is there any difference between below lines of code?

var $a = $('#rad1') 

or

var a = $('#rad1') 
1

6 Answers 6

81

No there is no real difference.

It's just a convention that helps you remember that a isn't the DOM element but it's a jQuery object.

var a = document.getElementById('a'); a.innerHTML //fine var $a = $('#a'); $a.html() // fine 

Ohhh, and by the way, neither a or $a are good variable names ... you should use meaningful variable names not abc characters.


Read the jQuery info tag on this very same site:

Variable Naming Conventions

jQuery wrapped variables are usually named starting with '$' to distinguish them from standard JavaScript objects.

var $this = $(this); 
Sign up to request clarification or add additional context in comments.

2 Comments

I come from java background.. and this answer really enlightened my day.I just know that in JS I can use $ in var name..
Funny thing is, you can use $ in Java variables as well.
5

It's only for showing that it's a Jquery variable.

Declaring $a you're showing that your variable is for JQuery objects, it's just a notation. So the most readable thing will be to declare Jquery variable with $ notation

var $obj=$("#obj"); 

And DOM element without $ notation

var obj = document.getElementById("obj"); 

Comments

1

There's no difference. It's just a coding convention to help identify that the variable represents a jquery wrapped object.

Comments

1

No difference its just coding convention , check this

Comments

1

I think this scenario should illustrate the reason for remembering(off course, assigning '$' ) jquery and simple javascript variables:

<form id='myform' > <input id="name" type="text" value="Peter" /> </form> <script> $(document).ready(function(){ var name = document.getElementById('name'); var $name = $('#name'); console.log(name.value); // javascript's properties are available console.log($name.value); //it is undefined (worth of notice) console.log(name.val()); // error! name.val is not a function ! (jquery function will not be available) console.log($name.val()); // jquery functions are available }); </script> 

Comments

0

A composition also works fine:

You can also do something like this to show a <div>:

function getCompTable(divId){ var $d = $('#' + divId); $d.show(); } 

USAGE

getCompTable('compListDiv'); // compListDiv - is a div id="" 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.