jQuery
jQuery(ジェイクエリー)は、ウェブブラウザ用のJavaScriptコードをより容易に記述できるようにするために設計されたJavaScriptライブラリである。ジョン・レシグが、2006年1月に開催された BarCamp NYC でリリースした。様々な場面で活用されており、JavaScriptライブラリのデファクトスタンダードと呼ぶ者もいる。ロゴの下に表記されているキャッチコピーは「write less, do more」(「少ない記述で、もっと多くのことをする」の意)。
機能・特徴
jQueryには次のような機能・特徴がある。
- ブラウザに依存しないオープンソースのセレクタエンジン Sizzle を使ったDOMエレメントの選択(Sizzle は jQuery プロジェクトからスピンアウト)
- DOM操作と変更(CSS 1-3 と基本的なXPathのサポートを含む)
- イベント
- CSS操作
- エフェクトとアニメーション
- Ajax
- ユーティリティ - ブラウザのバージョン取得、each関数など
- プラグインによる拡張性
配布
通常jQueryは単一のJavaScriptファイルとして存在している。このほかパッケージ管理システム(npm、Yarn、Bower)やコンテンツデリバリネットワーク(CDN)(Google、マイクロソフトなど)で配信されている。
ライブラリにリンクする例(同一ホスト・サーバーから):
<script src="jquery-3.7.1.min.js"></script>
公式のパブリックCDN、code
<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()
を記載した行以降、放棄される。これにより他のライブラリなどで宣言されていた$
変数を復帰することができる。
典型的なスタート方法
jQueryをスタートするには次の方法が推奨されている。
function example() {
// 定義された関数による任意のコード
}
$(example);
// または
$(function () {
// 無名関数による任意のコード
});
HTMLの解析を終えると、$()
メソッドで指定された関数をコールバックし、DOM操作などを安全にスタートさせる。同じ働きをしていたレディイベント$(document).on('ready', callback)
は古典的な方法で、jQuery 3.0以降削除されて、動作しない。
メソッドチェーン
$()
メソッドは基本的にjQuery
オブジェクトが返る為、次のようにメソッドをつなげていくことが可能である。
$('div.test').add('p.quote').addClass('blue').slideDown('slow');
このコードは、div
タグのクラス属性がtest
のものとp
タグのクラス属性がquote
のもの全てについて、クラス属性blue
を追加し、それらをアニメーション付きでスライドダウンさせる。$()
変数およびadd()
関数は一致する集合を決め、addClass()
とslideDown()
は参照しているノード群に作用する。
Ajax
静的メソッドの$.ajax()
を用いて非同期通信を実行することができる。$.ajax()
の返り値にはPromise
インタフェースを実装した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
の各メソッドに指定されたコールバック関数へ渡していたが、以降削除、動作しない。
Fetch APIと似た文法であるが、jQueryではXMLHttpRequest
オブジェクトを利用している為、返されるオブジェクトや、HTTPステータスコードが404
でもエラーとは見なさないなど取り扱いが少し異なる。
採用
マイクロソフトとノキアはそれぞれ自社プラットフォームへのjQueryバンドルを計画していると発表した。マイクロソフトは手始めに Visual Studio で採用、ASP.NET開発チームをフルタイムでjQueryの開発に参加のうえ、jQueryを同社のASP.NETにおけるクライアント・サイド・スクリプティングの標準として採用し、同社が開発していた類似技術を全て廃止すると発表、ASP.NET AJAX および ASP.NET MVC Framework で利用する。一方ノキアは同社の Web Runtime プラットフォームに組み込む予定である。
リリース履歴
主なリリースを示す。下に行くほど古いバージョンを示している。
関連項目
- Ajax
- AngularJS
- Backbone.js
- KnockoutJS
- MooTools
- MontageJS
- Prototype JavaScript Framework
- Raphael (JavaScriptライブラリ)
- Vue.js
- WinJS
脚注
注釈
出典
参考文献
- 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 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 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日閲覧。