jQuery入門 | 要素の選択 | jQueryセレクター
jQueryセレクター
jQueryでは、CSSセレクターだけでなく、いくつかの非標準セレクターも使用できる。 このような非標準セレクターを使用すると、選択した要素を保存したり、その結果をフィルタリングしたりできる。
選択した要素を変数に保存
jQueryでは、選択した要素を変数に保存して使用できる。
次のような要素があるとき、
<ul>
<li>エスプレッソ</li>
<li>アメリカーノ</li>
<li>カフェラテ</li>
</ul>
次の例は、文書内のすべての<li>要素を選択して変数に保存し、その変数を使って要素数を取得している。
var coffees = $("li");
$("#length").text("コーヒーの種類は全部で " + coffees.length + " 種類です。");
このように保存された要素は、変数に保存された時点の要素だけである。 そのため、要素が保存された後に追加または削除された要素は自動的には更新されない。
選択した要素のフィルタリング
jQueryでは、選択した要素の中からさらに細かく選択するためのフィルタリングを行える。
次のような要素があるとき、
<ul>
<li>エスプレッソ</li>
<li><b>アメリカーノ</b></li>
<li>カフェラテ</li>
</ul>
次の例は、文書内のすべての<li>要素のうち、<b>要素を持つ要素だけを選択して文を追加している。
$("li:has(b)").append(" - おすすめメニューです。");
フィルタリングに使用できるセレクターは次のとおりである。
| セレクター | 例 | 説明 |
|---|---|---|
| :eq(n) | $("ul li:eq(3)") |
選択した要素のうち、インデックスがnの要素を選択する。 |
| :gt(n) | $("ul li:gt(3)") |
選択した要素のうち、インデックスがnより大きい要素をすべて選択する。 |
| :lt(n) | $("ul li:lt(3)") |
選択した要素のうち、インデックスがnより小さい要素をすべて選択する。 |
| :even | $("tr:even") |
選択した要素のうち、インデックスが偶数の要素をすべて選択する。 |
| :odd | $("tr:odd") |
選択した要素のうち、インデックスが奇数の要素をすべて選択する。 |
| :first | $("p:first") |
選択した要素のうち、最初の要素を選択する。 |
| :last | $("p:last") |
選択した要素のうち、最後の要素を選択する。 |
| :animated | $(":animated") |
選択した要素のうち、アニメーション効果が実行中の要素をすべて選択する。 |
| :header | $(":header") |
選択した要素のうち、<h1>から<h6>までの要素をすべて選択する。 |
| :lang(言語) | $("p:lang(ja)") |
選択した要素のうち、指定した言語の要素をすべて選択する。 |
| :not(セレクター) | $("input:not(:empty)") |
選択した要素のうち、指定したセレクターと一致しない要素をすべて選択する。 |
| :root | $(":root") |
選択した要素のうち、最上位のルート要素を選択する。 |
| target | $("a[target='_blank']") |
選択した要素のうち、WebページURIのfragment識別子と一致する要素をすべて選択する。 |
| :contains(テキスト) | $(":contains('Hello')") |
選択した要素のうち、指定したテキストを含む要素をすべて選択する。 |
| :has(セレクター) | $("p:has(span)") |
選択した要素のうち、指定したセレクターと一致する子孫要素を持つ要素をすべて選択する。 |
| :empty | $(":empty") |
選択した要素のうち、子要素を持たない要素をすべて選択する。 |
| :parent | $(":parent") |
選択した要素のうち、子要素を持つ要素をすべて選択する。 |
input要素の選択
jQueryでは、入力フォームに関連する特定の要素を簡単に選択できる。
次のような要素があるとき、
<div><input type="checkbox" id="espresso"><label for="espresso">エスプレッソ</label></div>
<div><input type="checkbox" id="americano"><label for="americano">アメリカーノ</label></div>
<div><input type="checkbox" id="caffeLatte"><label for="caffeLatte">カフェラテ</label></div>
次の例は、チェックボックスのうちチェックされた入力フォーム要素の数を取得する。
var checked = $(":checked");
$("#count").text("選択したコーヒーは全部で " + checked.length + " 種類です。");
特定の<input>要素を選択できるセレクターは次のとおりである。
| セレクター | 例 | 説明 |
|---|---|---|
| :button | $(":button") |
type属性値が"button"の要素をすべて選択する。 |
| :checkbox | $(":checkbox") |
type属性値が"checkbox"の要素をすべて選択する。 |
| :file | $(":file") |
type属性値が"file"の要素をすべて選択する。 |
| :image | $(":image") |
type属性値が"image"の要素をすべて選択する。 |
| :password | $(":password") |
type属性値が"password"の要素をすべて選択する。 |
| :radio | $(":radio") |
type属性値が"radio"の要素をすべて選択する。 |
| :reset | $(":reset") |
type属性値が"reset"の要素をすべて選択する。 |
| :submit | $(":submit") |
type属性値が"submit"の要素をすべて選択する。 |
| :text | $(":text") |
type属性値が"text"の要素をすべて選択する。 |
| :input | $(":input") |
<input>、<textarea>、<select>、<button>要素をすべて選択する。 |
| :checked | $(":checked") |
type属性値が"checkbox"または"radio"の要素のうち、チェックされている要素をすべて選択する。 |
| :selected | $(":selected") |
<option>要素のうち、選択された要素をすべて選択する。 |
| :focus | $(":focus") |
現在フォーカスを持っている要素を選択する。 |
| :disabled | $(":disabled") |
無効化されている要素をすべて選択する。 |
| :enabled | $(":enabled") |
有効化されている要素をすべて選択する。 |