Uncaught ReferenceError: $ is not defined?

Matthew C.

The Problem

Say you use the global jQuery variable ($) to check if a form checkbox input is checked:

Click to Copy
const isItemChecked = $('#itemInput').is(':checked');

And you get the following error:

Click to Copy
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:

Click to Copy
<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:

Click to Copy
<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:

Click to Copy
import $ from 'jquery';

Get Started With Sentry

Get actionable, code-level insights to resolve JavaScript performance bottlenecks and errors.

  1. Create a free Sentry account

  2. Create a JavaScript project and note your DSN

  3. Grab the Sentry JavaScript SDK

Click to Copy
<script src="https://browser.sentry-cdn.com/7.112.2/bundle.min.js"></script>
  1. Configure your DSN
Click to Copy
Sentry.init({ dsn: 'https://<key>@sentry.io/<project>' });

Loved by over 4 million developers and more than 90,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.

Share on Twitter
Bookmark this page
Ask a questionJoin the discussion

Related Answers

A better experience for your users. An easier life for your developers.

    TwitterGitHubDribbbleLinkedinDiscord
© 2024 • Sentry is a registered Trademark
of Functional Software, Inc.