メソッド自体 ($.each,$.map,$.contains,$ajax)
一般的なツールと方法
(1)$.trim
$.trim メソッドは、文字列の先頭と末尾にある余分なスペースを削除するために使用されます。
(2)$.contains
$.contains メソッドは、DOM 要素 (2 番目のパラメーター) が別の DOM 要素 (1 番目のパラメーター) の下位要素であるかどうかを示すブール値を返します。
$.each メソッドは、配列とオブジェクトを反復処理して、元のオブジェクトを返すために使用されます。データ コレクションとコールバック関数の 2 つのパラメーターを受け入れます。
$.inArray メソッドは、配列内の値の位置 (0 から始まる) を返します。値が配列にない場合は、-1 が返されます。
$.extend メソッドは、複数のオブジェクトを最初のオブジェクトにマージするために使用されます。
(6)$.proxy
$.proxy メソッドは、ECMAScript 5 のバインド メソッドに似ています。関数のコンテキスト (つまり、このオブジェクト) とパラメーターをバインドし、新しい関数を返すことができます。
jQuery.proxy() の主な用途は、コンテキスト オブジェクトをコールバック関数にバインドすることです。
この例を記述する別の同等の方法は次のとおりです:
この例は、プロキシ メソッドを記述する主な方法が 2 つあることを示しています。
別の例を見てください。通常の状況では、次のコードの this オブジェクトは、クリック イベントが発生する DOM オブジェクトを指します。
現時点では、プロキシ メソッドを使用して、このオブジェクトを myElement オブジェクトにバインドできます。
(7)$.data、$.removeData
$.data メソッドを使用して、DOM ノードにデータを保存できます。
上記のコードは、キー名「foo」とキー値 52 を持つキーと値のペアを Web ページ要素本体に保存します。
$.removeData メソッドは、$.data メソッドに保存されているデータを削除するために使用されます。
(8)$.parseHTML、$.parseJSON、$.parseXML
$.parseHTML メソッドは、文字列を DOM オブジェクトに解析するために使用されます。
$.parseJSON メソッドは、ネイティブの JSON.parse() と同様に、JSON 文字列を JavaScript オブジェクトに解析するために使用されます。ただし、jQuery には、JSON.stringify() に似たメソッド、つまり JavaScript オブジェクトを JSON オブジェクトに変換するメソッドが提供されていません。
$.parseXML メソッドは、文字列を XML オブジェクトに解析するために使用されます。
(9)$.makeArray
$.makeArray メソッドは、配列のようなオブジェクトを実際の配列に変換します。
データ型を決定するメソッド
jQuery は、JavaScript のネイティブ typeof 演算子の欠点を補うデータ型を決定するための一連のツール メソッドを提供します。以下のメソッドはパラメータを判定し、ブール値を返します。
jQuery.isArray(): 配列かどうか。
jQuery.isEmptyObject(): 空のオブジェクト (列挙可能なプロパティを含まない) かどうか。
jQuery.isFunction(): 関数かどうか。
jQuery.isNumeric(): 配列かどうか。
jQuery.isPlainObject(): ブラウザによってネイティブに提供されるオブジェクトの代わりに、「{}」または「新しいオブジェクト」を使用して生成されたオブジェクトであるかどうか。
jQuery.isWindow(): ウィンドウ オブジェクトかどうか。
jQuery.isXMLDoc(): DOM ノードが XML ドキュメント内にあるかどうかを判断します。
以下にいくつかの例を示します。
Ajax 操作
$.ajax
jQuery オブジェクトは、Ajax 操作を処理するための Ajax メソッド ($.ajax()) も定義します。このメソッドを呼び出した後、ブラウザは HTTP リクエストをサーバーに送信します。
$.ajax() はさまざまな方法で使用できますが、最も一般的なのはオブジェクト パラメーターを提供することです。
async: この項目のデフォルトは true で、false に設定すると、同期リクエストが発行されることを意味します。
キャッシュ: この項目のデフォルトは true です。 false に設定すると、ブラウザーはサーバーから返されたデータをキャッシュしません。ブラウザ自体は POST リクエストによって返されたデータをキャッシュしないため、false に設定されていても、HEAD リクエストと GET リクエストに対してのみ有効であることに注意してください。
url: サーバー側の URL。これは唯一の必須属性であり、他の属性は省略できます。
type: サーバーに情報を送信するために使用される HTTP 動詞。デフォルトは GET です。その他の動詞には、POST、PUT、および DELETE があります。
dataType: サーバーから要求されたデータ型。text、html、script、json、jsonp、xml に設定できます。
data: サーバーに送信されるデータ。GET メソッドが使用される場合、この項目はクエリ文字列に変換され、URL の末尾に追加されます。
success: リクエストが成功したときのコールバック関数。関数パラメータは、サーバーから返されたデータ、ステータス情報、およびリクエストを発行した元のオブジェクトです。
timeout: 待機する最大ミリ秒数。この時間を過ぎてもリクエストが返されない場合、リクエストのステータスは自動的に失敗に変更されます。
error: リクエストが失敗したときのコールバック関数。関数パラメータは、リクエストを発行した元のオブジェクトと返されたステータス情報です。
complete: リクエストが成功したか失敗したかに関係なく実行されるコールバック関数。関数パラメータは、リクエストを発行した元のオブジェクトと返されたステータス情報です。
これらのパラメーターのうち、url は独立して、ajax メソッドの最初のパラメーターとして使用できます。つまり、上記のコードは次のように書くこともできます。
簡単な書き方
ajax メソッドを記述する簡単な方法もいくつかあります。
$.get(): GET リクエストを実行します。
$.getScript(): JavaScript スクリプト ファイルを読み取り、実行します。
$.getJSON(): GET リクエストを発行して JSON ファイルを読み取ります。
$.post(): POST リクエストを作成します。
$.fn.load(): HTML ファイルを読み取り、現在の要素に置きます。
一般に、これらの便利なメソッドは、URL、データ、成功時のコールバック関数という 3 つのパラメータを順番に受け入れます。
(1)$.get()、$.post()
これら 2 つのメソッドは、それぞれ HTTP の GET メソッドと POST メソッドに対応します。
上記のpostメソッドに対応するajaxの記述メソッドは以下の通りです。
(2)$.getJSON()
ajax メソッドを記述するもう 1 つの簡単な方法は、getJSON メソッドです。サーバーが JSON 形式でデータを返す場合、$.ajax メソッドの代わりにこのメソッドを使用できます。
(3)$.getScript()
$.getScript メソッドは、サーバー側からスクリプト ファイルをロードするために使用されます。
getScript のコールバック関数は、スクリプト ファイルの内容、HTTP 応答のステータス情報、および ajax オブジェクト インスタンスの 3 つのパラメーターを受け取ります。
(4)$.fn.load()
$.fn.load は jQuery のツール メソッドではなく、jQuery オブジェクト インスタンスに定義されたメソッドであり、サーバー側の HTML ファイルを取得して現在の要素に配置するために使用されます。このメソッドも ajax の操作に属するため、ここで一緒に説明します。
アヤックス イベント
jQuery は、特定の AJAX イベントのコールバック関数を指定するための次のメソッドを提供します。
.ajaxComplete(): ajax リクエストが完了しました。
.ajaxError(): Ajax リクエスト エラー。
.ajaxSend(): ajax リクエストが発行される前。
.ajaxStart(): 最初の ajax リクエストの発行が開始されます。つまり、まだ完了していない ajax リクエストはありません。
.ajaxStop(): すべての ajax リクエストが完了した後。
.ajaxSuccess(): ajax リクエストが成功した後。
以下に例を示します。
戻り値
ajax メソッドは遅延オブジェクトを返します。then メソッドを使用してオブジェクトのコールバック関数を指定できます (詳細については、「遅延オブジェクト」セクションを参照してください)。
JSONP
ブラウザの「同一ドメイン制限」により、ajax メソッドは現在の Web ページのドメイン名に対してのみ HTTP リクエストを行うことができます。ただし、スクリプト要素 (