jQuery (ジェイクエリー)は、ウェブブラウザ 用のJavaScript コードをより容易に記述できるようにするために設計されたJavaScriptライブラリ である。ジョン・レシグ が、2006年1月に開催された BarCamp NYC でリリースした。様々な場面で活用されており、JavaScriptライブラリのデファクトスタンダード と呼ぶ者もいる[ 2] 。ロゴの下に表記されているキャッチコピーは「write less, do more」(「少ない記述で、もっと多くのことをする」の意)。
機能・特徴
jQueryには次のような機能・特徴がある。
ブラウザに依存しないオープンソースのセレクタエンジン Sizzle を使ったDOM エレメントの選択(Sizzle は jQuery プロジェクトからスピンアウト)[ 3]
DOM 操作と変更(CSS 1-3 と基本的なXPath のサポートを含む)
イベント
CSS 操作
エフェクトとアニメーション
Ajax
ユーティリティ - ブラウザのバージョン取得、each関数など
プラグインによる拡張性
配布
通常jQueryは単一のJavaScriptファイルとして存在している。このほかパッケージ管理システム (npm 、Yarn 、Bower (ドイツ語版 ) )やコンテンツデリバリネットワーク(CDN) (Google 、マイクロソフト など)で配信されている[ 4] 。
ライブラリにリンクする例(同一ホスト・サーバーから):
< script src = "jquery-3.7.1.min.js" ></ script >
公式のパブリックCDN、code .jquery .com を利用する例:
< script
src = "https://code.jquery.com/jquery-3.7.1.min.js"
integrity = "sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo="
crossorigin = "anonymous" ></ script >
インタフェース
関数
jQueryは、静的メソッド とjQueryオブジェクトメソッドの2種類あり、それぞれに独自の使用スタイルがある。
jQuery
- メインのjQueryオブジェクト
$
- jQuery
の別名(エイリアス)
なおjQueryによって再代入された$
変数は、jQuery.noConflict()
を記載した行以降、放棄される。これにより他のライブラリなどで宣言されていた$
変数を復帰することができる[ 5] 。
典型的なスタート方法
jQueryをスタートするには次の方法が推奨されている。
function example () {
// 定義された関数による任意のコード
}
$ ( example );
// または
$ ( function () {
// 無名関数による任意のコード
});
HTMLの解析を終えると、$()
メソッドで指定された関数をコールバック し、DOM操作などを安全にスタートさせる。同じ働きをしていたレディイベント$(document).on('ready', callback)
は古典的な方法で、jQuery 3.0以降削除されて、動作しない[ 6] 。
メソッドチェーン
$()
メソッドは基本的にjQuery
オブジェクトが返る為、次のようにメソッドをつなげていくことが可能である。
$ ( 'div.test' ). add ( 'p.quote' ). addClass ( 'blue' ). slideDown ( 'slow' );
このコードは、div
タグのクラス属性がtest
のものとp
タグのクラス属性がquote
のもの全てについて、クラス属性blue
を追加し、それらをアニメーション付きでスライドダウンさせる。$()
変数およびadd()
関数は一致する集合を決め、addClass()
とslideDown()
は参照しているノード群に作用する。
Ajax
静的メソッドの$.ajax()
を用いて非同期通信を実行することができる。$.ajax()
の返り値にはPromise
インタフェース [ 7] を実装したDeferred
オブジェクトが返るため、then()
メソッドを用いて要求した結果を受けとる必要がある。
$ . ajax ({
type : 'POST' ,
url : '/process/submit.php' ,
data : {
name : 'John' ,
location : 'Boston' ,
},
}). then ( function ( msg ) {
alert ( 'Data Saved: ' + msg );
}). catch ( function ( xmlHttpRequest , statusText , errorThrown ) {
alert (
'Your form submission failed.\n\n'
+ 'XML Http Request: ' + JSON . stringify ( xmlHttpRequest )
+ ',\nStatus Text: ' + statusText
+ ',\nError Thrown: ' + errorThrown );
});
このコードは/process/submit.php
にパラメータ name=John&location=Boston
をつけて要求し、その要求が正常に完了したとき、レスポンスを表示する。
jQuery 3.0以前では結果を受けとる際にsuccess
、error
、complete
の各メソッドに指定されたコールバック関数へ渡していたが、以降削除、動作しない[ 8] 。
Fetch APIと似た文法であるが、jQueryではXMLHttpRequest
オブジェクトを利用している為、返されるオブジェクトや、HTTPステータスコード が404
でもエラーとは見なさないなど取り扱いが少し異なる[ 9] 。
採用
マイクロソフト とノキア はそれぞれ自社プラットフォームへのjQueryバンドルを計画していると発表した[ 10] 。マイクロソフトは手始めに Visual Studio で採用[ 11] 、ASP.NET開発チームをフルタイムでjQueryの開発に参加のうえ、jQueryを同社のASP.NETにおけるクライアント・サイド・スクリプティングの標準として採用し、同社が開発していた類似技術を全て廃止すると発表、ASP.NET AJAX および ASP.NET MVC Framework で利用する。一方ノキアは同社の Web Runtime プラットフォームに組み込む予定である。
リリース履歴
主なリリースを示す。下に行くほど古いバージョンを示している。
リリース日付
バージョン番号
備考
2021年3月12日
3.6.0
2020年4月10日
3.5.0
2019年4月10日
3.4.0
2018年1月19日
3.3.0
古い関数の廃止、クラスを受け付ける関数において配列形式にも対応
2017年3月16日
3.2.0
<template>
要素の内容を取り戻す対応を追加、様々な古いメソッドを廃止
2016年7月7日
3.1.0
Deferredモジュールのエラーハンドリング改善。
2016年6月9日
3.0.0
DeferredのPromises/A+互換化。カスタムセレクタの高速化。Ajax機能を含まない軽量版の提供。ES2015のfor ofループへの対応。requestAnimationFrameへの対応など。
2016年1月14日
3.0.0-beta1
AlphaからBetaに移行。Alpha時点で存在していた、IE8対応のjQuery compatは、Microsoft社によるIEのサポートポリシー変更に伴って開発停止。
2016年5月20日
2.2.4、1.12.4
1系、2系の最終バージョン。
2016年1月8日
2.2.0、1.12.0
1系、2系の機能追加はこのバージョンで終了し、今後はバグの修正のみとなる。パフォーマンスの改善、SVGクラスの操作等の新機能追加。
2014年1月24日
2.1.0、1.11.0
2013年4月18日
2.0.0
Internet Explorer 6, 7, 8 の非サポート,ファイルサイズを12%少なくしたこと等。APIは1.9との互換性を維持している。
2013年1月15日
1.9 FINAL / 2.0 beta
.toggle等の利用頻度の低いAPIの廃止(廃止されたAPIはjQuery Migrate Plugin として別途提供)
2012年8月9日
1.8
CSSのベンダープレフィックスを自動付加、5つのモジュールに分割、アニメーション処理刷新、Sizzle(セレクター解析エンジン)再構築、XSS対策強化、ソフトウェアライセンスの単一化
2011年11月3日
1.7
.bind(), .delegate(), .live()等の一部APIの統合、新規APIの追加、一部API連携の改善、IEでの不具合/仕様の対応
2011年5月3日
1.6
パフォーマンス改善、.attr(), .val()の拡張、アニメーション処理の改善
2011年1月31日
1.5
Ajax関連モジュールのコード刷新、settingに新規プロパティを追加、Deferredオブジェクト追加、一部APIのパフォーマンス改善
2010年1月14日
1.4
大幅なパフォーマンス/実行速度改善
2009年1月14日
1.3
Sizzle Selector Engine がコアに導入された。
2007年9月10日
1.2
2007年1月14日
1.1
2006年8月26日
1.0
最初の安定版
2006年6月30日
1.0a
α版
関連項目
脚注・出典
参考文献
Chaffer, Jonathon; Karl Swedberg (2007). Learning jQuery: Better Interaction Design and Web Development with Simple JavaScript Techniques . Packt Publishing. ISBN 978-1847192509
Bibeault, Bear; Yehuda Katz (2008). jQuery in Action . Manning Publications Co.. ISBN 978-1933988351
Heilmann, Christian (2006). Beginning JavaScript with DOM Scripting and Ajax . Apress. ISBN 978-1590596807 . https://books.google.co.jp/books?id=M3Uqna8RIAkC&redir_esc=y&hl=ja 2009年5月4日 閲覧。
Darie, Cristian; Filip Chereches-Tosa, Mihai Bucicia (2005). AJAX and PHP: Building Responsive Web Applications . Packt Publishing. ISBN 978-1904811824
Heilmann, Christian; Mark Norman Francis (2007). Web Development Solutions . Apress. ISBN 978-1590598061 . https://books.google.co.jp/books?id=AdEfkbOmmX4C&redir_esc=y&hl=ja 2009年5月4日 閲覧。
Taft, Darryl K. (2006年8月30日). “jQuery Eases JavaScript, AJAX Development ”. eWeek . 2009年5月4日 閲覧。
Krill, Paul (2006年8月31日). “JavaScript, .Net developers aided in separate projects ”. InfoWorld . 2009年5月4日 閲覧。
外部リンク