2020.09.06

jQuery

jQueryで発生したエラーの対処法

コンソールでjQueryのエラーが発生した場合の対処法です。エラー発生の有無はjQueryのバージョンやfull版・slim版の違いによっても異なります。1系や2系の古いバージョンを最新の3系に変更すると発生する確率が高いです。

以下はスムーススクロール実装の際に発生したエラーです。

Uncaught Error: Syntax error, unrecognized expression: a[href^=#]

「Syntax error, unrecognized expression」は引用符のエラーです。対処法としては下記のように記述します。

//変更前
$('a[href^=#]').click(function(){

//変更後
$('a[href^="#"]').click(function(){

以下もスムーススクロール実装の際に発生したエラーです。

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

slim版ではajax系と次のアニメーション系の関数(animate、fadeIn、fadeOut、fadeToggle、fadeTo、finish、stop、slideDown、slideUp、slideToggle)はサポートされていません。そのため、full版に変更が必要です。

//エラー箇所
$("html, body").animate({scrollTop:position}, speed, "swing");

//変更前
<script src="https://code.jquery.com/jquery-3.4.1.slim.js" integrity="sha256-BTlTdQO9/fascB1drekrDVkaKd9PkwBymMlHOiG+qLI=" crossorigin="anonymous"></script>

//変更後
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>

以下はloadイベント使用時のエラーです。

Uncaught TypeError: e.indexOf is not a function

loadイベントはajaxのloadメソッドと区別するため、下記のように記述します。

//変更前
$(window).load(function(){

//変更後
$(window).on('load', function(){

以下はbuttonタグの存在チェック記述時のエラーです。

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

sizeメソッドは3系で廃止になったため、lengthプロパティに書き換えます。なお、lengthプロパティをsizeメソッドのようにlength()と記述するとエラーになります。

//変更前
if($('button').size()){

//変更後
if($('button').length){

以下は変数のスコープエラーです。

Uncaught ReferenceError: array is not defined

関数のスコープ内で宣言された変数は、関数の内側からのみ利用可能なローカル変数です。関数の外部からはアクセスできません。変数の宣言を関数の外側に出してグローバル変数にすれば、関数の内側・外側どちらからでもアクセスできます。

//変更前
$("ul li").each(function() {
	var array = [];
	array.push($(this).text());
});
console.log(array);

//変更後
var array = [];
$("ul li").each(function() {
	array.push($(this).text());
});
console.log(array);

以下は文法エラーで、予期しない記号が見つかった場合に発生します。この場合はピリオドが対象です。

Uncaught SyntaxError: Unexpected token '.'

セレクタのクォーテーション閉じ忘れを修正すると、セレクタ内のピリオドを正常に認識してエラーが解消されます。

//変更前
var totoph = $(.toTop).innerHeight();

//変更後
var totoph = $('.toTop').innerHeight();

関連記事

2020.09.21

jQuery

jQueryで兄弟要素を取得(next・nextAll・prev・prevAll・siblings)

デモページはこちら jQueryで兄弟要素(同階層の要素)を取得するメソッドのまとめです。対象要素の直後の要素を取得するnext、対象要素の直後以降の要素を全て…

2021.01.04

jQuery

トップへ戻るボタンをフッターの上部に表示

デモページはこちら jQueryでフッターの高さを取得し、ユーザーがページ最下部までスクロールしても、トップへ戻るボタンをフッターよりも上部に表示します。 フッ…

2020.10.11

jQuery

jQueryのhoverメソッドで要素にマウスカーソルが重なった時と離れた時の処理を実装

デモページはこちら jQueryのhoverメソッドで要素にマウスカーソルが重なった時と離れた時の処理を実装します。hoverメソッドは要素にマウスカーソルが重…

2022.08.25

jQuery

jQueryのhasClassメソッドでclassの付与を判定

jQueryのhasClassメソッドで要素にclassが付与されているか判定します。以下のhtmlの構造で確認します。 hasClassメソッドは引数にクラス…

2020.10.15

jQuery

jQueryプラグイン jquery.matchHeight.jsの使い方

jQueryプラグイン、jquery.matchHeight.jsの使い方です。全てのページ共通で、以下のhtml構造でテストします。デモページではクラス名bo…

上に戻る