Sentry Answers>JavaScript>

Uncaught ReferenceError: $ is not defined?

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';
  • YoutubeHow Sentry.io saved me from disaster (opens in a new tab)
  • ResourcesImprove Web Browser Performance - Find the JavaScript code causing slowdowns (opens in a new tab)
  • SentryJavascript Error Monitoring & Tracing (opens in a new tab)
  • ResourcesJavaScript Frontend Error Monitoring 101 (opens in a new tab)
  • Syntax.fmListen to the Syntax Podcast (opens in a new tab)
  • Syntax.fm logo
    Listen to the Syntax Podcast (opens in a new tab)

    Tasty treats for web developers brought to you by Sentry. Get tips and tricks from Wes Bos and Scott Tolinski.

    SEE EPISODES

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.