2012年08月

evenフィルター/oddフィルター

セレクターの中から偶数番目に出現する要素を「evenフィルター」で、
奇数番目に出現する要素を「oddフィルター」で指定できる。
ただし、JavaScriptでは、数字を0から数えるので、最初の要素は1ではなく0になる。

<script type="text/javascript">
   $(function(){
      $("li:odd").css("color","#9cf");
      $("li:even").css("color","#73ff73");
   });
</script>
<ul>
   <li>テキスト1テキスト1テキスト1</li>
   <li>テキスト2テキスト2テキスト2</li>
   <li>テキスト3テキスト3テキスト3</li>
   <li>テキスト4テキスト4テキスト4</li>
</ul>

偶数番目(0番目と2番目)のli要素が#73ff73の色に、
奇数番目(1番目と3番目)が#9cfの色に変わる。

odd/evenフィルターは、指定したセレクターで奇数(偶数)に登場する要素を選択できる。

  • テキスト1テキスト1テキスト1
  • テキスト2テキスト2テキスト2
  • テキスト3テキスト3テキスト3
  • テキスト4テキスト4テキスト4

jQueryの独自フィルター – firstフィルター/lastフィルター

jQueryではCSSセレクター以外にも、独自のセレクターである「フィルター」が利用できる。

firstフィルター / lastフィルター

セレクターの中から最初の要素を「firstフィルター」、最後の要素を「lastフィルター」で指定できる。

<script type="text/javascript">
   $(function(){
      $("li:first").css("color","#9cf");
      $("li:last").css("color","#9cf");
   });
</script>
<ul>
   <li>テキスト1テキスト1テキスト1</li>
   <li>テキスト2テキスト2テキスト2</li>
   <li>テキスト3テキスト3テキスト3</li>
   <li>テキスト4テキスト4テキスト4</li>
</ul>

firstフィルターによって1番目のli要素が、lastフィルターによって最後のli要素が#9cfの色になる。

first-child擬似クラスやlast-child擬似クラスとの違いは、
first-child/last-child擬似クラスが共通の親要素を持つ要素から
最初(または最後の)の要素を選択するのに対して、
last/firstフィルターは指定したセレクターで最初(最後)に登場する要素だけを選択できる。

  • テキスト1テキスト1テキスト1
  • テキスト2テキスト2テキスト2
  • テキスト3テキスト3テキスト3
  • テキスト4テキスト4テキスト4

[属性Filter1][属性Filter2]

複数の属性セレクターを同時に指定することもできる。

<script type="text/javascript">
   $(function(){
      $("[title^='f'][title*='th']").css("color","#9cf");
   });
</script>
<ul>
   <li title="first">テキスト1テキスト1テキスト1</li>
   <li title="second">テキスト2テキスト2テキスト2</li>
   <li title="third">テキスト3テキスト3テキスト3</li>
   <li title="fourth">テキスト4テキスト4テキスト4</li>
</ul>

title属性の値が「f」から始まり、かつtitle属性の値に「th」が含まれる要素、
つまり4番目のli要素が#9cfの色になる。

  • テキスト1テキスト1テキスト1
  • テキスト2テキスト2テキスト2
  • テキスト3テキスト3テキスト3
  • テキスト4テキスト4テキスト4

[属性*='値']

特定の属性が、特定の文字列を含んでいる要素を指定できる。

<script type="text/javascript">
   $(function(){
      $("[title*='ir']").css("color","#9cf");
   });
</script>
<ul>
   <li title="first">テキスト1テキスト1テキスト1</li>
   <li title="second">テキスト2テキスト2テキスト2</li>
   <li title="third">テキスト3テキスト3テキスト3</li>
   <li title="fourth">テキスト4テキスト4テキスト4</li>
</ul>

title属性の値に「ir」を含む要素、つまり1番目と3番目のli要素が#9cfになる。

  • テキスト1テキスト1テキスト1
  • テキスト2テキスト2テキスト2
  • テキスト3テキスト3テキスト3
  • テキスト4テキスト4テキスト4

[属性$='値']

特定の属性の値が、特定の文字列で終わっている要素を選択できる。

<script type="text/javascript">
   $(function(){
      $("[title$='d']").css("color","#9cf");
   });
</script>
<ul>
   <li title="first">テキスト1テキスト1テキスト1</li>
   <li title="second">テキスト2テキスト2テキスト2</li>
   <li title="third">テキスト3テキスト3テキスト3</li>
   <li title="fourth">テキスト4テキスト4テキスト4</li>
</ul>

title属性の値が「d」で終わっている要素、つまり2番目と3番目のli要素が#9cfの色になる。

  • テキスト1テキスト1テキスト1
  • テキスト2テキスト2テキスト2
  • テキスト3テキスト3テキスト3
  • テキスト4テキスト4テキスト4