【初心者向け】jQueryでよく出るエラーと対処法まとめ!原因&解決策セットで解説

jQueryはシンプルで使いやすいJavaScriptライブラリですが、使い始めたばかりの初心者にとっては、思ったように動かない、エラーが出る、何が原因かわからない…という状況に陥りがちです。
この記事では、jQueryでよく出るエラーを実例付きで紹介し、その原因と解決方法を初心者向けにわかりやすく解説します!

$ is not defined

エラー例:

Uncaught ReferenceError: $ is not defined

解決策:

  • <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> をHTMLに追加
  • jQuery本体の読み込みが、自作スクリプトより上にあることを確認
<!-- 正しい順番 -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="main.js"></script>

Uncaught TypeError: $(…).XXX is not a function

エラー例:

Uncaught TypeError: $(...).slick is not a function

原因:

その関数(この例では .slick())が読み込まれていないライブラリのメソッドである場合が多い。

解決策:

  • slick.js など対応するライブラリの読み込みがあるか確認
  • jQuery本体よりも後にプラグインを読み込む
<script src="jquery.min.js"></script>
<script src="slick.min.js"></script> <!-- ← 必須! -->
<script src="main.js"></script>

$(…).on is not a function

エラー例:

Uncaught TypeError: $(...).on is not a function

原因:

古いバージョンのjQueryを使っている場合、.on() メソッドが使えないことがあります(v1.7未満など)。

解決策:

最新のjQueryバージョンを使う(v3.x推奨)

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

Uncaught SyntaxError: Unexpected token

エラー内容:

Uncaught SyntaxError: Unexpected token ')'

原因:

カッコの閉じ忘れや、記号(,, ;)の打ち間違いなど文法エラー

解決策:

  • セミコロン、カンマ、波カッコ {}、丸カッコ () を1つずつ見直す
  • コード整形ツールやエディタの「フォーマット機能」を使う

fadeIn() や slideToggle() が動かない

原因:

  • 対象要素が存在しない
  • display: none; ではなく visibility: hidden; などで隠している

解決策:

  • jQueryのアニメーションは display 属性に作用する → display: none; を使おう
  • 要素が確実に存在することを確認する

要素を動的に追加したのにイベントが効かない

原因:

動的に追加した要素には、直接バインドしたイベントが効かない

解決策:

.on() の**委任(イベントデリゲーション)**を使う

// ❌ 動的要素には無効
$('.btn').click(function() { ... });

// ✅ 動的要素にも有効(親要素に委任)
$(document).on('click', '.btn', function() {
// クリック処理
});

jQueryと他のライブラリが競合している

症状:

  • $ が使えない
  • ほかのライブラリの関数とバッティングして動作が不安定

解決策:

jQueryを**noConflict()**モードで呼び出す

var jq = jQuery.noConflict();
jq(document).ready(function() {
jq('#test').text('競合回避完了!');
});

コンソールに何も表示されない(=silent fail)

原因:

  • $(selector) が空(要素が見つからない)
  • イベントが発火していない
  • エラーではないけど何も起きていない

解決策:

.lengthで要素が取得できているかチェック

console.log($('#target').length); // 0なら要素がない!

エラー解決のためのチェックリスト

チェックポイント 内容
jQueryが読み込まれているか CDN or ファイルパスを確認
セレクタは正しいか #id, .class を確認
DOMは読み込まれているか $(document).ready() を使う
イベントの記述方法は正しいか on, click, change など
要素が動的に追加されていないか .on()でイベント委任する
他ライブラリと競合していないか noConflict() を使う

開発中のコツ:エラー表示を最大活用!

  • ブラウザの「開発者ツール」(F12)でコンソール(Console)を確認
  • console.log() で変数の中身や処理の流れを可視化しよう!
console.log("イベント発火しました!");
console.log($(this).attr('id'));

まとめ

エラー例原因対処法
$ is not definedjQueryの読み込みミスCDNの確認・順番の見直し
click is not a functionセレクタミス or DOM未読込みセレクタ修正 & .ready()内に書く
on is not a functionjQueryバージョン or 他ライブラリ干渉バージョン確認・競合回避
動的要素にイベント効かない通常の .click().on() に変更
コンソールに何も表示されない要素が取得できていない.length で存在チェック
著者プロフィール
原口 雄一

Webディレクター/コーダー。
webコーダーの経験が約10年あり、webサービスの立ち上げやメディア運営などをやっていました。

会社ではWeb系全般の相談を受けるので、守備範囲は結構広めです。

コーディング初心者の人からの質問も受けるので、参考になればとの想いで当ブログを始めました。

自社サイトはこちら

原口 雄一をフォローする
jQuery

コメント

タイトルとURLをコピーしました