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