Is there any specific reason behind using $ with variable in jQuery

Jquery

Jquery Problem Overview


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')

Jquery Solutions


Solution 1 - Jquery

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);

Solution 2 - Jquery

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");

Solution 3 - Jquery

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

Solution 4 - Jquery

No difference its just coding convention , check this

Solution 5 - Jquery

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=""

Yosi Lev

Solution 6 - Jquery

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>

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionExceptionView Question on Stackoverflow
Solution 1 - Jquerygdoron is supporting MonicaView Answer on Stackoverflow
Solution 2 - JqueryChuck NorrisView Answer on Stackoverflow
Solution 3 - JquerykinakutaView Answer on Stackoverflow
Solution 4 - JqueryGovind MalviyaView Answer on Stackoverflow
Solution 5 - JqueryylevView Answer on Stackoverflow
Solution 6 - JqueryShivView Answer on Stackoverflow