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:

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

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

<script src="https://browser.sentry-cdn.com/7.112.2/bundle.min.js"></script>
  1. Configure your DSN
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.