Uncaught ReferenceError: $ is not defined
jQuery is a JavaScript library and the purpose of jQuery is to make code much easier to use JavaScript. When you are working with the jQuery library , then there is a pretty good chance that you will encounter the following jQuery/JavaScript error at some point in time:
Basically $ is an alias of jQuery() so when you try to call/access it before declaring the function, it will endup throwing this $ is not defined error . This usually indicates that jQuery is not loaded and JavaScript does not recognize the $. Even with $(document).ready , $ is still going to be undefined because jquery hasn't loaded yet.
To solve this error:
Load the jQuery library at the beginning of all your javascript files/scripts which uses $ or jQuery, so that $ can be identified in scripts . example In the following code, you can see that the jQuery library is loaded after the script. So, you will get "$ is not defined" error.
<!DOCTYPE html>
<html>
<head>
<script>
$(document).ready(function(){
$("p").click(function(){
alert("You Clicked....");
});
});
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<p>Click Here...</p>
</body>
</html>
In order to fix this error, include the jQuery library file before the JavaScript code.
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("p").click(function(){
alert("You Clicked....");
});
});
</script>
</head>
<body>
<p>Click Here...</p>
</body>
</html>

Click Here...
Working offline

There may be a chance where you are working offline but trying to loading or referring the jQuery code from internet . In this case, there is a problem with the internet connection and jQuery will not load from the CDN . In this case, you can simply download the jQuery.js and use it locally rather then downloading from internet and use the code below to load jQuery locally :
<script src="/js/jquery.min.js"></script>
Conflict with Other Libraries
As you already know jQuery uses the $ sign as a shortcut for jQuery. There are many other popular JavaScript frameworks like: Angular , Backbone, prototype.js, MooTools, and more. Thus, if you are using another JavaScript library that uses the $ variable, you can run into conflicts with jQuery. By using noConflict() you can of course still use jQuery, simply by writing the full name (jQuery) instead of the shortcut:
<script>
$.noConflict();
jQuery(document).ready(function(){
jQuery("button").click(function(){
jQuery("p").text("jQuery is still working!");
});
});
</script>
Path to jQuery library you included is not correct
You might have put an incorrect path to jQuery library , or there may be typo in your file.
<script src="ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
The above code does not include the HTTP: or HTTPS: in the src attribute but the browser, FireFox, needed it so you should changed it to:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
The jQuery library file is corrupted
If the jQuery library file has been downloaded from an untrustworthy sites and the file is corrupted, this error may happen.
Google CDN:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
Microsoft CDN
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.3.1.min.js"></script>
Related Topics
- jQuery Interview Questions (Part-2)
- jQuery Interview Questions (Part-3)
- Is jQuery a programming language?
- Why do we need to go for JQuery?
- How to check jQuery version?
- How to multiple version of jQuery?
- What is jQuery CDN?
- Advantages of minified version of JQuery
- How do I check if the DOM is ready?
- How to Use the jQuery load() Method
- Difference between document.ready() and body onload()?
- Is jQuery is a replacement of JavaScript?
- JQuery or JavaScript which is quicker in execution?
- What is the use of param() method?
- How to work with jQuery parent(), children() and siblings()?
- Difference between parent() and parents() in jQuery?
- What does jQuery data() function do?
- How do you check if an element exists or not in jQuery?
- How do I check if an HTML element is empty using jQuery?
- How to run an event handler only once in jQuery?
- How to disable/enable an element with jQuery
- Hide and show image on button click using jQuery
- Difference Between Prop and Attr in jQuery
- How do I check if an element is hidden in jQuery?
- What happen if you return false from a jQuery event handler?
- What is each() function in jQuery? How do you use it?
- Which one is more efficient, document.getElementbyId( "myId") or $("#myId)?
- What is the difference between $.map and $.grep in jQuery
- What is the use of serialize method in jQuery
- What is the use of clone method in jQuery?
- What is event.PreventDefault in jQuery?
- Difference between event.PreventDefault and event.stopPropagation?
- What are deferred and promise object in jQuery?
- What are source maps in jQuery?
- What does the jQuery migrate function do?
- Differences Between jQuery .bind() and .live()?
- How can you delay document.ready until a variable is set?
- How to disable cut,copy and paste in TextBox using jQuery?
- How to prevent Right Click option using jquery?
- How does the jQuery pushStack function work?
- Why use jQuery filter() Methods?
- Difference between find() and closest() in jquery?
- How To Use Ajax In Jquery?
- How to multiple AJAX requests be run simultaneously in jQuery?
- Can we call C# code behind using jQuery?
- How to include jQuery in ASP.Net project?
- Need to add jQuery file in both Master and Content page?
- Uncaught TypeError: $(…).modal is not a function jquery
- How to check whether a checkbox is checked in jQuery?
- How to Convert JSON Date to JavaScript/jQuery date