初めてのjQuery:セレクターAPIを一挙解説(後編)

来源:互联网 发布:node.js适用场景 编辑:程序博客网 时间:2024/05/17 00:57

4.CSSの属性セレクター

 jQueryは、CSSの属性セレクターの多くにも対応しています。属性セレクターとは、要素の持つ属性の条件で絞り込めるセレクターです。[...] の内側に属性の条件を記述します。


■[attribute]

 特定の属性を持つ要素を指定できるセレクターです。


▼サンプルコード(HTML部分)

<ul>    <li id="first">テキストテキストテキストテキストテキスト</li>    <li class="second">テキストテキストテキストテキストテキスト</li>    <li id="third">テキストテキストテキストテキストテキスト</li>    <li class="fourth">テキストテキストテキストテキストテキスト</li></ul>

▼サンプルコード(スクリプト部分)

$(function(){    $("[id]").css("color","red");})

▼実行結果(実際のWebページ)

 id属性を持つ要素、つまり1行目と3行目のli要素が赤色になります。

サンプル16

■[attribute='value']

 特定の属性が、特定の値を持つ要素を指定できるセレクターです。


▼サンプルコード(HTML部分)

<ul>    <li title="first">テキストテキストテキストテキストテキスト</li>    <li title="second">テキストテキストテキストテキストテキスト</li>    <li title="third">テキストテキストテキストテキストテキスト</li>    <li title="fourth">テキストテキストテキストテキストテキスト</li></ul>

▼サンプルコード(スクリプト部分)

$(function(){    $("[title='second']").css("color","red");})

▼実行結果(実際のWebページ)

 title属性の値がsecondの要素、つまり2行目のli要素が赤色になります。

サンプル17

■[attribute!='value']

 特定の属性が、特定の値を持たない要素を指定できるセレクターです。このセレクターは要素セレクターの後に記述する必要があります。


▼サンプルコード(HTML部分)

<ul>    <li title="first">テキストテキストテキストテキストテキスト</li>    <li title="second">テキストテキストテキストテキストテキスト</li>    <li title="third">テキストテキストテキストテキストテキスト</li>    <li title="fourth">テキストテキストテキストテキストテキスト</li></ul>

▼サンプルコード(スクリプト部分)

$(function(){    $("li[title!='first']").css("color","red");})

▼実行結果(実際のWebページ)

 title属性の値がfirst以外のli要素、つまり1行目以外のli要素が赤色になります。

サンプル18

Read more: http://ascii.jp/elem/000/000/440/440882/#ixzz20EOyQO6Q


■[attribute^='value']

 特定の属性の値が、特定の文字列で始まっている要素を指定できます。


▼サンプルコード(HTML部分)

<ul>    <li title="first">テキストテキストテキストテキストテキスト</li>    <li title="second">テキストテキストテキストテキストテキスト</li>    <li title="third">テキストテキストテキストテキストテキスト</li>    <li title="fourth">テキストテキストテキストテキストテキスト</li></ul>

▼サンプルコード(スクリプト部分)

$(function(){    $("[title^='f']").css("color","red");})

▼実行結果(実際のWebページ)

 title属性の値がfで始まる文字列である要素、つまり1行目と4行目のli要素が赤色になります。

サンプル19

■[attribute$='value']

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


▼サンプルコード(HTML部分)

<ul>    <li title="first">テキストテキストテキストテキストテキスト</li>    <li title="second">テキストテキストテキストテキストテキスト</li>    <li title="third">テキストテキストテキストテキストテキスト</li>    <li title="fourth">テキストテキストテキストテキストテキスト</li></ul>

▼サンプルコード(スクリプト部分)

$(function(){    $("[title$='d']").css("color","red");})

▼実行結果(実際のWebページ)

 title属性がdで終わっている文字列である要素、つまり2行目と3行目のli要素が赤色になります。

サンプル20

■[attribute*='value']

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


▼サンプルコード(HTML部分)

<ul>    <li title="first">テキストテキストテキストテキストテキスト</li>    <li title="second">テキストテキストテキストテキストテキスト</li>    <li title="third">テキストテキストテキストテキストテキスト</li>    <li title="fourth">テキストテキストテキストテキストテキスト</li></ul>

▼サンプルコード(スクリプト部分)

$(function(){    $("[title*='ir']").css("color","red");})

▼実行結果(実際のWebページ)

 title属性がirを含む文字列である要素、つまり1行目と3行目のli要素が赤くなります。

サンプル21

■[attributeFilter1][attributeFilter2]

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


▼サンプルコード(HTML部分)

<ul>    <li title="first">テキストテキストテキストテキストテキスト</li>    <li title="second">テキストテキストテキストテキストテキスト</li>    <li title="third">テキストテキストテキストテキストテキスト</li>    <li title="fourth">テキストテキストテキストテキストテキスト</li></ul>

▼サンプルコード(スクリプト部分)

$(function(){$("[title^='f'][title*='th']").css("color","red");})

▼実行結果(実際のWebページ)

 title属性がfから始まり、かつtitle属性にthが含まれる文字列である要素、つまり4行目のli要素が赤色になります。

サンプル22

Read more: http://ascii.jp/elem/000/000/440/440882/#ixzz20EPKZxW0


headerフィルター

 「headerフィルター」は、h1h6までのheading要素をまとめて指定できるフィルターです。


▼サンプルコード(HTML部分)

<h1>テキストテキストテキストテキストテキスト</h1><p>テキストテキストテキストテキストテキスト</p><h6>テキストテキストテキストテキストテキスト</h6>

▼サンプルコード(スクリプト部分)

$(function(){    $(":header").css("color","red");})

▼実行結果(実際のWebページ)

 1行目のh1要素、3行目のh6要素が赤色になります。

サンプル26

■containsフィルター / hasフィルター

 「containsフィルター」は特定の文字列が含まれている要素を、「hasフィルター」は特定の要素が含まれている要素を指定できます。


▼サンプルコード(HTML部分)

<ul>    <li><strong>テキスト</strong>テキストテキストテキストテキスト</li>    <li>テキストテキストテキストテキストテキスト</li>    <li>テキストテキストテキストテキストテキスト</li>    <li>サンプルサンプルサンプルサンプルサンプル</li></ul>

▼サンプルコード(スクリプト部分)

$(function(){    $("li:contains('サンプル')").css("color","red");    $("li:has(strong)").css("color","red");})

▼実行結果(実際のWebページ)

 「サンプル」という文字列が含まれる4番目のli要素と、strong要素を含む最初のli要素が赤色になります。

サンプル27

■parentフィルター

 「parentフィルター」は、子要素やテキストを含む要素を指定できるフィルターです。CSS3セレクターで紹介したempty擬似クラスと逆のフィルターです。


▼サンプルコード(HTML部分)

<ul>    <li>テキストテキストテキストテキストテキスト</li>    <li></li>    <li>テキストテキストテキストテキストテキスト</li>    <li></li></ul>

▼サンプルコード(スクリプト部分)

$(function(){    $("li:parent").css("color","red");})

▼実行結果(実際のWebページ)

 空のli要素以外のli要素、つまり1行目と3行目が赤色になります。

サンプル28

Read more: http://ascii.jp/elem/000/000/440/440882/#ixzz20EQfSGON


セレクターAPIのまとめ

 ここまでに紹介したとおり、jQueryではさまざまなセレクターを利用して(X)HTMLの要素を指定できます。最後に、jQueryで使えるセレクターをまとめておきましょう(表中の「要素」はセレクターで指定された要素です)

名称書式指定対象CSSでよく利用されるセレクター要素セレクター$("要素名")特定のhtml要素IDセレクター$("#ID名")特定のid属性の値を持つ要素クラスセレクター$(".クラス名")特定のclass属性の値を持つ要素子孫セレクター$("要素1 要素2")特定の要素の内側にある要素ユニバーサルセレクター$("*")すべての要素グループセレクター$("セレクター1,セレクター2,...")複数のセレクターCSS2のセレクター子セレクター$("親要素名 > 子要素名")特定の要素の直下の子要素隣接セレクター$("要素1 + 要素2")特定の要素の次の要素first-child擬似クラス$("要素:first-child")特定の要素内の最初の要素CSS3のセレクター間接セレクター$("要素1 ~ 要素2")特定の要素の後に出現する要素否定擬似クラス$("要素1:not(要素2)")特定の要素内の指定した要素以外の要素empty擬似クラス$("要素:empty")子要素やテキストを含まない要素nth-child擬似クラス$("要素:nth-child(番号)")特定の要素内の指定した番号の要素last-child擬似クラス$("要素:last-child")特定の要素内の最後の要素only-child擬似クラス$("要素:only-child")指定した要素が1つだけ含まれる特定の要素CSSの属性セレクター[attribute]$("[属性名]")特定の属性を持つ要素[attribute='value']$("[属性名='値']")特定の属性が指定した値を持つ要素[attribute!='value']$("要素名[属性名!='値']")特定の属性が指定した値を持たない要素[attribute^='value']$("[属性名^='値']")特定の属性が特定した値で始まっている要素[attribute$='value']$("[属性名$='値']")特定の属性が特定した値で終わっている要素[attribute*='value']$("[属性名*='値']")特定の属性が特定した値を含んでいる要素[attributeFilter1][attributeFilter2]$("[属性セレクター1][属性セレクター2]")複数の属性セレクターに該当する要素jQueryの独自フィルターfirstフィルター$("要素:first")指定した要素の最初の要素lastフィルター$("要素:last")指定した要素の最後の要素evenフィルター$("要素:even")指定した要素の偶数番目の要素oddフィルター$("要素:odd")指定した要素の奇数番目の要素eqフィルター$("要素:eq(番号)")指定した番号の要素(番号は0から数える)gtフィルター$("要素:gt(番号)")指定した番号より後の要素(番号は0から数える)ltフィルター$("要素:lt(番号)")指定した番号より前の要素(番号は0から数える)headerフィルター$("要素:header")h1~h6までのheader要素containsフィルター$("要素:contains(文字列)")特定の文字列が含まれている要素hasフィルター$("要素1:had(要素2)")特定の要素が含まれている要素parentフィルター$("要素:parent")子要素やテキストを含む要素

 次回は、セレクターで指定した要素の(X)HTMLやCSSを変更する、さまざまな方法をご紹介します。


Read more: http://ascii.jp/elem/000/000/440/440882/#ixzz20ER0mcs6

原创粉丝点击