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