スタートページJavascriptjQuery

jQueryの実例:セレクタの指定方法

「jQueryの基礎:主なセレクタ」の実例です。
ボタンをクリックすると、右の文章が変わります。

注意:続けて実行するときは、先の実行結果が残ってしまうので、「再読み込み」や「最新の情報に更新」をしてください。


基本形

例1:タグのセレクタ

h4タグの文を赤色にします。

<script>
  function 例1() {
    $("h4").css("color", "red");
  }
</script>

例2:クラスのセレクタ

class="aaa" の個所を書き換えます。

<script>
function 例2() {
    $(".aaa").text('class="aaa"を書き換えました');
}
</script>

例3:IDのセレクタ

id="id2" の部分を非表示にします。

<script>
    function 例3() {
        $(".aaa").css("display", "none");
    }
</script>
A:<div id="id1">の行

B:<h4> の行 </h4>

C:<h4 class="aaa"> の行 </h4>

D:</div>の行
E:<div id="id2">の行
F:<h5 class="acc"> の行 </h5>
G:<h5 class="bbb"> の行 </h5>
H:</div>の行
I:<mytag>(ユーザ独自タグ)の行

J:<h4 class="aaa"> の行 </h4>

K:<h5 class="aaa"> の行 </h5>
L:<h5>の内部に<span class="aaa"></span>がある
M:</mytag>の行

id="id1" の範囲:A~D
id="id2" の範囲:E~H
<mytag> の範囲:I~K

   class="aaa"  "bbb"  なし
<h4>    C・J            B
<h5>    K(L)    G

実験1:セレクタとメソッドを変えて試してください

セレクタ= メソッド=
セレクタ
  タグ:< > を付けずにdiv, h4 とする
  クラス:.aaa のように「.」を付ける
  ID:#id2 のように「#」を付ける
メソッド
  1 赤色にする
  2 「書き換えました」にする
  3 非表示にする
<script>
    function 例4() {
        var セレクタ = eval(フォーム1.セレクタ.value);
        var メソッド = フォーム1.メソッド.value;
        if (メソッド == 1)      $(セレクタ).css("color", "red");
        else if (メソッド == 1) $(セレクタ).text('書き換えました');
        else if (メソッド == 1) $(セレクタ).css("display", "none");
        else alert("メソッドは1~3です!");
    }
</script>

複雑なセレクタ指定

以降はすべて、次のスクリプトのセレクタの部分をいろいろと変えたものです。
すなわち、セレクタに該当する個所が赤くなります。

<script>
  function 例X() {
    $(セレクタ).css("color", "red");
  }
</script>

例4:"h4, .aaa" (区切記号は「,」)

複数指定:タグが<h4>、または、class="aaa" の個所

例5-1:"[class='aaa']"

".aaa" としたのと同じ。[ ]の前の指定がないと「すべての」の意味になる。

例5-2:"h5[class='aaa']"

<h5>のタグの内部にclass='aaa' がある個所です。Kは該当するがLは該当しません。

例6-1:"mytag .aaa" (区切記号は半角空白)

<mytag>の内部で、class='aaa' がある個所。例5ではタグのなかであったが、これはLも対象になります。

例6-2:"mytag > .aaa"

<mytag>の内部で、直下に class='aaa' がある個所。Lでの class='aaa' は、<mytag>の直下は<h5>であり、<h5>の下に class='aaa' があるので、直下ではなく、対象になりません。

例7:"h5[class^='a']" (ワイルド指定が「^」)

例5-2の拡張です。<h5>のタグの内部に class='a~"(先頭がaで始まる任意のクラス名)がある個所です。右では、F(acc)とK(aaa)が対象になります。
  "h5[class^='a']"  先頭がa
  "h5[class$='a']"  末尾がa
  "h5[class*='a']"  どこかにa

A:<div id="id1">の行

B:<h4> の行 </h4>

C:<h4 class="aaa"> の行 </h4>

D:</div>の行
E:<div id="id2">の行
F:<h5 class="acc"> の行 </h5>
G:<h5 class="bbb"> の行 </h5>
H:</div>の行
I:<mytag>(ユーザ独自タグ)の行

J:<h4 class="aaa"> の行 </h4>

K:<h5 class="aaa"> の行 </h5>
L:<h5>の内部に<span class="aaa"></span>がある
M:</mytag>の行

id="id1" の範囲:A~D
id="id2" の範囲:E~H
<mytag> の範囲:I~K

   class="aaa"  "bbb"  なし
<h4>    C・J            B
<h5>    K(L)    G

実験2:セレクタを変えて試してください

セレクタ=
<script>
    function 実験2() {
        var セレクタ = eval(フォーム2.セレクタ.value);
        $(セレクタ).css("color", "red");
    }
</script>