jQuery v3からv4に変えて使用するとエラーになる可能性がある

jQuery 4.0.0 BETAがリリースされた

2024年2月6日にjQuery 4.0.0 BETAがリリースされました。

2024年3月にはベータ版でないjQuery v4がリリースされて、jQueryのダウンロードページに貼られるため、利用者の増加が見込まれます。

jQuery v3からv4に変えて使用するとエラーになる

jQuery v4はv3と互換性がないので、コードによってはエラーになって動作しない可能性があります。

例えばjQuery 4.0.0からは以下のメソッドが削除されているため使えません。

  • jQuery.cssProps
  • jQuery.isArray
  • jQuery.parseJSON
  • jQuery.nodeName
  • jQuery.isFunction
  • jQuery.isWindow
  • jQuery.camelCase
  • jQuery.type
  • jQuery.now
  • jQuery.isNumeric
  • jQuery.trim
  • jQuery.fx.interval

そのため、jQuery.now ($.now())を使用したコードの場合、jQuery v3は動作しますが、v4だとエラーになります。

// <p id="result"></p>
$('#result').text($.now())

※ v4だとConsoleに「Uncaught TypeError: $.now is not a function」のエラーが表示されます。

jQuery v3で$.now()を使用したサンプル

jQuery v4で$.now()を使用したサンプル

v4だと使用できないメソッドが含まれているかどうかは、以下の正規表現で検索すれば検出できます。

(jQuery|\$)\.(cssNumber|cssProps|isArray|parseJSON|nodeName|isFunction|isWindow|camelCase|type|now|isNumeric|trim|fx\.interval)

push, sort, and splice も削除されている

jQueryで指定した要素にArrayが存在していて、そこにpushできる仕様が存在します。

// <p id="result"></p>
const $result = $('#result')
$result.push('foo')
$result.text($result[1])
// <p id="result">foo</p>

jQuery 4.0.0からはこちらも使用不可になります。

これを使用しているケースはかなり少ないですが、v4でエラーになると「Uncaught TypeError: $result.push is not a function」などのエラーが発生するため、覚えておくと良いでしょう。