jQueryのセレクター
jQueryで使えるセレクター。全部じゃないけど、自分が使いそうなものだけ。
子要素指定や属性セレクターなど、CSSで指定するとIE6ではNGなのだけどjQuery側から指定すればOK。
CSSセレクター
$("*") | すべての要素 |
$("p") | pタグ |
$("#id") | id="#id" |
$(".class") | class="class" |
$(".class, #id") | class="class"とid="#id" |
$("#id div"); | #id内のdiv(子孫) |
$("#id > div"); | #id直下のdiv(子) |
$("#id + div") | #idの次にあわられるdiv |
$("li:first-child") | 親要素内の最初のli |
$("li:last-child") | 親要素内の最後のli |
$("li:not(:first-child)") | 親要素内の最初のli以外 |
$("li:nth-child(3)") | 親要素内の三番目のli |
$("li:nth-child(even)") | 親要素内の偶数番目のli |
$("li:nth-child(odd)") | 親要素内の奇数番目のli |
$("li:nth-child(3n)") | 親要素内の3の倍数番目のli |
$("div:empty") | 空のdiv |
$("div p:only-child") | div内に1つだけpがある時のp |
CSS attributeセレクター(属性セレクター)
$("[id]") | 特定要素が指定してあるもの、この場合はidの指定があるもの |
$("[class^='block']") | classがblock〜のもの。 |
jQuery独自フィルター
$(".class" + "#id"); | class="class"かつid="#id" | |
$(".class", "#id"); | #id内のclass。第2引数に親を指定して絞り込み | |
$("li:first") | 最初のli | |
$("li:last") | 最後のli | |
$("li:even") | 偶数のli | |
$("li:odd") | 奇数のli | |
$("li:lt(2)") | 未満。1,2番目まで ※0が最初 | |
$("li:eq(2)") | イコール。3番目のみ ※0が最初 | |
$("li:gt(2)") | 超。4番目以降 ※0が最初 | |
$("li:contains('テキスト')") | 文字列"テキスト"を含むli | |
$("li:has(strong)") | strongタグがあるli |
CSSセレクターの〜child(例:first-child)とjQuery独自フィルター(first)の違いは、
- $("li:first-child") = ページ内に複数ulがあればそれぞれの最初のli
- $("li:first") = ページ内に複数ulがあっても全体で最初のliのみ
参考:
ASCII.jp:初めてのjQuery:セレクターAPIを一挙解説(前編)|Web制作の現場で使えるjQuery UIデザイン入門
ASCII.jp:初めてのjQuery:セレクターAPIを一挙解説(後編)|Web制作の現場で使えるjQuery UIデザイン入門
jQueryのセレクタ 基本 - [JavaScript]All About