Uncaught ReferenceError: $ is not defined?
The Problem
Say you use the global jQuery variable ($) to check if a form checkbox input is checked:
const isItemChecked = $('#itemInput').is(':checked');
And you get the following error:
Uncaught ReferenceError: $ is not defined
This is a JavaScript error that occurs when you try to access a variable or call a function that has not been defined. Why is $ not defined?
The Solution
The jQuery library attaches the global variables jQuery and $ to the browser window. The $ variable is the same as the jQuery variable; it’s a shortened alias for simplicity.
When the jQuery library has not been added to your application, $ will be undefined. Here are two common fixes: one for when you download the jQuery library from a CDN and one for when you get the jQuery library from npm.
Add jQuery library script from CDN before your app script
The jQuery global variable $ will be undefined if you import the jQuery library using a script tag that’s added after the script tag for your application code, which uses the $ variable:
<script src="myApp.js"></script>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.4/dist/jquery.min.js"></script>
To fix this, import the jQuery library first:
<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.4/dist/jquery.min.js"></script>
<script src="myApp.js"></script>
Be sure that the URL path to the jQuery library is correct and that the library is downloaded.
Import $ from the jQuery npm library
If you are using the jQuery npm package, make sure that you import the jQuery global variable ($) before using it:
import $ from 'jquery';
Considered "not bad" by 4 million developers and more than 150,000 organizations worldwide, Sentry provides code-level observability to many of the world's best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.