jQuery独自のセレクター 2015.02.27
はじめに
前回の記事からずいぶん日が空いてしまいました。
前回はひたすらにセレクターを書き連ねましたが、今回はその中でもjQuery独自のセレクターについて掘り下げていきます。
INDEX
1.first/last
$(“○○:first”)/$(“○○:last”)
firstセレクターは、ある特定の要素の最初の要素。
lastセレクターは、ある特定の要素の最後の要素、を選択します。
1 2 3 4 5 6 |
<ul> <li>テキスト</li> <li>テキスト</li> <li>テキスト</li> <li>テキスト</li> </ul> |
1 2 3 4 |
$(function(){ $("li:first").css("color","red"); $("li:last").css("color","red"); }); |
似ている要素として、first-child疑似クラス/last-child疑似クラスがあります。
first-child疑似クラス/last-child疑似クラスは、ある特定の要素を基準点として、最初の子要素/最後の子要素を選択するのに対し、
first/lastは、ある特定の要素(全体)の最初の要素/最後の要素を選択する、という違いがあります。
例えば、以下のHTMLであれば、、
1 2 3 4 5 6 7 8 9 10 11 12 |
<ul> <li>テキスト</li> <li>テキスト</li> <li>テキスト</li> <li>テキスト</li> </ul> <ol> <li>テキスト</li> <li>テキスト</li> <li>テキスト</li> <li>テキスト</li> </ol> |
first/lastの場合→結果
first-child/last-childの場合→結果
2.even/odd
$(“○○:even”)/$(“○○:odd”)
evenセレクターは、ある特定の要素の偶数番目の要素、
oddセレクターは、ある特定の要素の奇数番目の要素、を選択します。
(JavaScriptは数字を0から数えるため、最初の要素は0、つまり偶数になります。)
1 2 3 4 5 6 |
<ol> <li>テキスト</li> <li>テキスト</li> <li>テキスト</li> <li>テキスト</li> </ol> |
1 2 3 4 |
$(function(){ $("li:even").css("color","red"); $("li:odd").css("color","blue"); }); |
ちなみにnth-child疑似クラス($(“li:nth-child(even)”)/$(“li:nth-child(odd)”))は、ある特定の要素から数えて偶数もしくは奇数番目を選択します。
よって上の例の場合、nth-child疑似クラスでは、青、赤、青、赤となり、
even/oddでは、赤、青、赤、青となります。
nth-child疑似クラス→結果
3.eq/lt/gt
$(“○○:eq(数字)”)/$(“○○:lt(数字)”)/$(“○○:gt(数字)”)
ある要素の中から特定の順番の要素を選択するのがeqセレクター(equal)、
特定の順番の要素より前を選択するのがltセレクター(less than)、
特定の順番の要素より後を選択するのがgtセレクター(greater than)、です。
1 2 3 4 5 6 7 |
<ol> <li>テキスト</li> <li>テキスト</li> <li>テキスト</li> <li>テキスト</li> <li>テキスト</li> </ol> |
1 2 3 4 5 |
$(function(){ $("li:eq(2)").css("color","red"); $("li:lt(2)").css("color","blue"); $("li:gt(2)").css("color","green") }); |
上の例では、$(“li:eq(2)”)により、li要素の中の(2)の要素が赤になります。
ただし、JavaScriptでは、0、1、2、と0から数えるのが通例なので、この場合の(2)は3番目を指します。
同様に、$(“li:lt(2)”)により、li要素の中の3番目より前が青、
$(“li:gt(2)”)により、li要素の中の3番目より後が緑、となります。
4.header
$(“○○:header”)
headerセレクターは、h1~h6までのheading要素をまとめて選択します。
1 2 3 4 |
<h1>テキスト</h1> <p>テキスト</p> <h4>テキスト</h4> <p>テキスト</p> |
1 2 3 |
$(function(){ $(":header").css("color","red"); }); |
5.contains/has
$(“○○:contain(文字列)”)/$(“○○:has(要素)”)
containsセレクターは、ある特定の文字列が含まれている要素を選択します。
hasセレクターは、ある特定の要素Bが含まれている要素Aを選択します。
1 2 3 4 5 6 7 |
<ol> <li>テキスト<strong>テキスト</strong>テキストテキスト</li> <li>テキストテキストテキストテキスト</li> <li>テキストテキストテキストテキスト</li> <li>テキーラテキーラテキーラテキーラ</li> <li>テキストテキストテキストテキスト</li> </ol> |
1 2 3 4 |
$(function(){ $("li:contains(テキーラ)").css("color","red"); $("li:has(strong)").css("color","blue"); }); |
上の例でわかるように、文字列や要素が含まれている要素全体を選択するという点がポイントです。
6.parent
$(“○○:parent”)
parentセレクターは何らかの子要素やテキストが含まれている要素を選択します。
CSS3セレクターのempty疑似クラス(空の要素を選択する)の逆のセレクターです。
1 2 3 4 5 6 7 |
<ol> <li>テキスト</li> <li>テキスト</li> <li></li> <li>テキスト</li> <li></li> </ol> |
1 2 3 |
$(function(){ $("li:parent").css("color","red"); }); |