とほほのjQuery入門

トップ > jQuery > Selector

Selector(Basic)

◆ $("*") (1.0)

すべての要素にマッチします。下記の例では、すべての要素のフォントを Arial に設定します。

JavaScript
$("*").css("font-family", "Arial");
◆ $("element") (1.0)

すべての element要素にマッチします。下記の例では、すべての <h1>~</h1> にマッチします。

JavaScript
$("h1").css("color", "red");    // <h1>~</h1>
◆ $(".class") (1.0)

class="class" が指定されたすべての要素にマッチします。

JavaScript
$(".caution").css("color", "red");        // <h1 class="caution">~</h1>

element.class とした場合、class="class" が指定された element要素にマッチします。

JavaScript
$("p.caution").css("color", "red");       // <p class="caution">~</p>

.class1.class2 とした場合、class="class1 class2" が指定された要素にマッチします。

JavaScript
$(".caution.error").css("color", "red");  // <p class="caution error">~</p>
◆ $("#id") (1.0)

id="id" が指定された要素にマッチします。同じ id を持つ要素は、ひとつのドキュメントに通常ひとつしか記述しません。要素に特色をつけたい場合は class を、特定の要素を指定したい場合は id を使用します。

JavaScript
$("#p123").css("color", "red");        // <p id="p123">~</p>

element.#id とした場合、id="id" が指定された element要素にマッチします。

JavaScript
$("p#p123").css("color", "red");        // <p id="p123">~</p>

.class#id とした場合、class="class" id="id" が指定された要素にマッチします。

JavaScript
$(".caution#p123").css("color", "red");  // <p class="caution" id="p123">~</p>
◆ $("selector1, selector2, selectorN") (1.0)

selector1 または selector2 または selectorN にマッチする要素の集合です。

JavaScript
$("h1,.p1,#p2").css("color", "red");  // <h1>...</h1><p class="p1">...</p><p id="p2">...</p>

Selector(Hierarchy)

◆ $("selector1 selector2") (1.0)

selector1 の子孫要素として出現する selector2 にマッチします。

JavaScript
$("table#t1 td").css("color", "red");    // <table id="t1"><tr><td>...</td></tr></table>
◆ $("selector1 > selector1") (1.0)

selector1 の子要素として出現する selector2 にマッチします。tr要素は table要素の子要素ではなく、table > tbody/thead/tfoot > tr となることに注意してください。

JavaScript
$("ul.sample > li").css("color", "red");    // <ul class="sample"><li>...</li></table>
◆ $("selector1 + selector1") (1.0)

selector1 の直後に兄弟要素として出現する selector2 にマッチします。

JavaScript
$("#p1 + p").css("color", "red");           // <p id="p1"></p><p>...</p>
◆ $("selector1 ~ selector1") (1.0)

selector1 の後に兄弟要素として出現する selector2 にマッチします。

JavaScript
$("#p1 ~ p").css("color", "red");    // <p></p><p id="p1"></p><p>...</p><p>...</p>

Selector(Attribute)

◆ [name] (1.0)

name属性を持つ要素にマッチします。

JavaScript
$("[href]").css("color", "red");       // <a href="...">...</a>
$("a[href]").css("color", "red");      // <a href="...">...</a>
$("a.a1[href]").css("color", "red");   // <a class="a1" href="...">...</a>
$("a#a2[href]").css("color", "red");   // <a id="a2" href="...">...</a>
◆ [name='value'] (1.0)

name属性の値が valueに等しい要素にマッチします。

JavaScript
$("[lang='ja']").css("color", "red");    // <p lang="ja">...</p>
◆ [name!='value'] (1.0)

name属性の値が valueに等しくない要素にマッチします。

JavaScript
$("p[lang!='ja']").css("color", "red");    // <p lang="en">...</p>
◆ [name~='value'] (1.0)

name属性の値がスペースで区切られたひとつ以上の値を持つ場合、その値のひとつが value と等しい要素にマッチします。

JavaScript
$("p[class~='cool']").css("color", "blue");    // <p class="cool sharp">...</p>
◆ [name|='value'] (1.0)

name属性の値がプレフィクスとして value または value- を含む要素にマッチします。

JavaScript
$("p[lang|='en']").css("color", "red");    // <p lang="en-US">...</p>
◆ [name^='value'] (1.0)

name属性の値が value を先頭に含む要素にマッチします。

JavaScript
$("a[href^='http:']").css("color", "red");    // <a href="http://">...</a>
◆ [name$='value'] (1.0)

name属性の値が value を末尾に含む要素にマッチします。

JavaScript
$("img[src$='.png']").css("border", "2px solid red");    // <img src="sample.png">
◆ [name*='value'] (1.0)

name属性の値が valueを含む要素にマッチします。

JavaScript
$("a[href*='http://']").css("color", "red");    // <a href="http://example.com/">...</a>
◆ [attmatch1][attmatch2] (1.0)

attmatch1attmatch2 両方を満たす要素にマッチします。

JavaScript
$("[id='p1'][class~='p2']").css("color", "red");    // <p id="p1" class="p2">...</a>

Selector(Basic Filter)

◆ :even (1.0)
◆ :odd (1.0)

対象要素の中で偶数番目/奇数番目の要素にマッチします。

JavaScript
$("div.message:even").css("background", "#ddd");
$("div.message:odd").css("background", "#eee");
◆ :first (1.0)
◆ :last (1.0)

対象要素の中で最初/最後の要素にマッチします。

JavaScript
$("div.message:first").css("color", "red");
$("div.message:last").css("color", "red");
◆ :eq(index) (1.0)
◆ :eq(-index) (1.8)

対象要素の中で 0から数えて index番目の要素にマッチします。負の値を指定した場合は後ろから数えます。

JavaScript
$("div.message:eq(5)").css("color", "red");
◆ :gt(index) (1.0)
◆ :lt(index) (1.0)

対象要素の中で 0番目から数えて index番目より大きい/小さい要素にマッチします。

JavaScript
$("div.message:gt(5)").css("background", "#ccc");
$("div.message:lt(5)").css("background", "#ccc");
◆ :not(selector) (1.0)

対象要素の中で selector にマッチしない要素にマッチします。

JavaScript
$("div:not(.except)").css("color", "#ccc");    // <div class="except">...</div>
◆ :focus (1.6)

対象要素の中でフォーカスが当たっている要素にマッチします。

JavaScript
$("input").focus(function() {
    $("input:focus").css("background-color", "#ccf");
    $("input:not(:focus)").css("background-color", "#fff");
});
◆ :header (1.2)

対象要素の中のヘッダ要素(h1, h2, h3...)にマッチします。

JavaScript
$(":header").css("text-transform", "uppercase");    // <h1>...</h1>
◆ :lang(language) (1.9)

対象要素の中で、lang="language" の要素にマッチします。

JavaScript
$(":lang(en)").css("font-family", "Arial");         // <span lang="en">...</span>
◆ :root (1.9)

ドキュメントのルート要素(通常html要素)にマッチします。

JavaScript
alert($(":root")[0].nodeName);                      // HTML
◆ :target (1.9)

対象要素の中で、URI のターゲット(#target) を id として持つ要素にマッチします。例えば、http://www.example.com/sample.html#HTML にアクセスされた場合、id="HTML" 属性を持つ要素にマッチします。

JavaScript
$(":target").css("background-color", "yellow");    // <h1 id="HTML">...</h1>
◆ :animated (1.2)

アニメーション実行中の要素にマッチします。

JavaScript
$("div#d1").animate({ 'font-size': '32pt' }, 1000);
$("div:animated").css("color", "red");

Selector(Content Filter)

◆ :contains(text) (1.1.4)

text をテキストとして含む要素にマッチします。

JavaScript
$("p:contains('John')").css("color", "red");    // <p> ... John ... </p>
◆ :empty (1.0)

空の要素にマッチします。

JavaScript
$("td:empty").css("background-color", "#ccc");    // <td></td>
◆ :has(selector) (1.1.4)

対象要素の中で、selector にマッチする要素を子孫要素として持つ要素にマッチします。

JavaScript
$("p:has(b)").css("color", "red");    // <p>...<b>...</b>...</p>
◆ :parent (1.0)

対象要素の親要素にマッチします。

JavaScript
$("b:parent").css("color", "red");    // <p>...<b>...</b>...</p>

Selector(Visibility Filter)

◆ :hidden (1.0)

非表示要素にマッチします。非表示要素には、head, title, meta, script, style などの非表示要素、CSS で display: none が設定された要素、width:0; height:0 が設定された要素、type="hidden" の input要素、祖先要素が非表示状態の要素が含まれます。

JavaScript
$(":hidden").each(function() {
    $("#log").append($(this)[0].nodeName + "<br>");
});
◆ :visible (1.0)

表示されている要素にマッチします。表示要素には html, body要素も含まれます。

JavaScript
$(":visible").each(function() {
    $("#log").append($(this)[0].nodeName + "<br>");
});

Selector(Child Filter)

◆ :first-child (1.1.4)
◆ :last-child (1.1.4)

対象要素の内、その要素が親要素から見て最初の(最後の)子要素であるものにマッチします。

JavaScript
$("tr:first-child").css("color", "red");
◆ :first-of-type (1.9)
◆ :last-of-type (1.9)

対象要素の内、その要素が親要素から見て同じ種別の最初の(最後の)子要素であるものにマッチします。下記の例では、th要素を無視して、最初の(最後の) td要素にマッチする点が first-child, last-child と異なります。

JavaScript
$("td:first-of-type").css("color", "red");
◆ :nth-child(index) (1.1.4)
◆ :nth-last-child(index) (1.9)

対象要素の内、その要素の親要素から見て index番目の子要素であるものにマッチします。最初の要素が 1番目になります。:nth-last-child() は後ろから数えます。

JavaScript
$("tr:nth-child(3)").css("background-color", "#ccc");

index は、2の倍数(2n)や、2の倍数に1を加えたもの(2n+1)などを指定することができます。

JavaScript
$("tr:nth-child(2n+1)").css("background-color", "#ccc");
◆ :nth-of-type(index) (1.9)
◆ :nth-last-of-type(index) (1.9)

:nth-child()、:nth-last-child() と同様ですが、同じ種別の要素のみを数えます。

JavaScript
$("td:nth-of-type(2n+1)").css("background-color", "#ccc");
◆ :only-child (1.1.4)

その要素が、親要素から見て唯一の子要素である場合にマッチします。

JavaScript
$("tr:only-child").css("color", "red");
◆ :only-of-type (1.9)

その要素が、親要素から見て同じ種別の唯一の子要素である場合にマッチします。

JavaScript
$("td:only-of-type").css("color", "red");

Selector(Form)

◆ :input (1.0)

input、textarea、select、button要素にマッチします。

JavaScript
$(":input").css("color", "red");
◆ :text (1.0)
◆ :password (1.0)
◆ :file (1.0)
◆ :checkbox (1.0)
◆ :radio (1.0)
◆ :submit (1.0)
◆ :reset (1.0)
◆ :button (1.0)
◆ :image (1.0)

type-"text", type="password" 等の input要素にマッチします。

JavaScript
$("input:text").css("color", "red");
◆ :checked (1.0)

checked な状態の要素にマッチします。val() も参照してください。

JavaScript
$("input").change(function() {
    val = $("input[name='color']:checked").map(function() {
        return $(this).val();
    }).get();                          // [ "Black", "White" ]
    alert(val);
});
◆ :disabled (1.0)

disabled な状態の要素にマッチします。

JavaScript
$("input:disabled").css("background-color", "#ccc");
◆ :enabled (1.0)

enabled な状態の input、textarea、select、button、optgroup、option要素にマッチします。

JavaScript
$(":enabled").css("color", "red");
◆ :selected (1.0)

selected な状態の option要素にマッチします。

JavaScript
$("select#s1").change(function() {
    alert($("option:selected").val());
});

Copyright (C) 2013-2019 杜甫々
初版:2013年2月3日、最終更新:2019年5月5日
http://www.tohoho-web.com/js/jquery/selector.htm