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、）やコンテンツデリバリネットワーク（CDN）（Google、マイクロソフトなど）で配信されている。

ライブラリにリンクする例（同一ホスト・サーバーから）：
<script src="jquery-3.7.1.min.js"></script>

公式のパブリックCDN、を利用する例：

<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 プラットフォームに組み込む予定である。

 リリース履歴 
主なリリースを示す。下に行くほど古いバージョンを示している。
 リリース日付 バージョン番号 備考 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 α版

 関連項目 
 Ajax
 AngularJS
 Backbone.js
 KnockoutJS
 MooTools
 MontageJS
 Prototype JavaScript Framework
 Raphael (JavaScriptライブラリ)
 Vue.js
 WinJS

 脚注 

 注釈 

 出典 

 参考文献 








 外部リンク 



Category:JavaScriptライブラリ
Category:2006年のソフトウェア
Category:ウェブ開発
Category:JavaScriptでプログラムされた自由ソフトウェア