id、classを割り当てるためのメソッド
次のような構造のhtmlがあるとします。
<ul> <li>リスト1</li> <li>リスト2</li> <li>リスト3</li> <li>リスト4</li> <li>リスト5</li></ul>たとえば、ulに「style-ul」というidを、liには「style-li」というclassを割り当てるとします。
「attr」メソッドを使用すれば、属性の追加や値を設定することができます。
attr(属性, 属性値)
idを割り当てるには、属性の部分に「id」を属性値には「style-ul」とします。
$(function(){ $('ul').attr('id', 'style-ul'); $('li').attr('class', 'style-li');}実行結果は次のようになります。
<ul id="style-ul"> <li class="style-li">リスト1</li> <li class="style-li">リスト2</li> <li class="style-li">リスト3</li> <li class="style-li">リスト4</li> <li class="style-li">リスト5</li></ul>class、idともに「attr」メソッドを使用しましたが、classを追加するには他に「addClass」という専用のメソッドもあります。
次のようにしても同じ結果を得ることができます。
$('li').addClass('style-li');classを追加する場合こちらの方がわかりやすいですね。
最初と最後の要素だけクラスを追加する。
前回はli要素全てにclassを追加してましたね。
リストの最初だけclassを追加したい場合「:first」セレクタを使用します。
$('li:first').addClass('style-li');逆にリストの最後に追加したい場合は「:last」セレクタを使用します。
$('li:last').addClass('style-li');要素番号を指定してクラスを追加する。
2番目とか3番目にclassを追加したい場合はどうなるでしょうか。
そんなときは「eq」を使用します。
$('li').eq(1).addClass('style-li');「eq」の引数は0から始めるので、2の場合は1を3の場合は2を入れます。
奇数・偶数の要素だけクラスを追加する。
偶数の場合は「even」、奇数の場合は「odd」セレクタを使用します。
$('li:even').addClass('style-li');連番でクラスを追加する。
「style-li01」「style-li02」…など連番でクラスを追加したいときがあります。
「each」で要素の数だけループさせることができます。
var i = 1;$('li').each(function(){ $(this).addClass('style-li'+i); i++;});直下の要素だけクラスを追加する。
次のようにリストの下にさらにリスト要素があったとします。
<ul id="top"> <li> リスト1 <ul> <li>子リスト1</li> <li>子リスト2</li> <li>子リスト3</li> </ul> </li> <li>リスト2</li> <li>リスト3</li></ul>子要素のliにはclassを割り当てたくない場合(#top直下のliのみ)は次のようになります。
$('#top>li').addClass('style-li');

