前 目 次

class属性の変更でスタイルを変える

class属性を変更する例

エレメントノードにはstyle属性もありますから、簡単な変更ならこれでもできます。しかし、あらかじめ classごとに見栄えを指定しておいて classの値を変化させる方が簡単で応用を広げることが出来ます。

次の文は虫の名前がclass="mushi"というクラスのspanに、虫の音がclass="koe"というクラスのspanに指定されています。あらかじめ koe は青緑色に指定されてます。mushiは特に設定はありません。

span.koe   {color:#009999; font-weight:bold;}
span.medatsu1 {color:#ff0000;background:#ffcccc;}
span.medatsu2 {background:#ccffff;}

いろいろな虫がいます。特徴的ななき方をするものは聞き分けることは簡単です。ウマオイはスイッチョンとなきます。クツワムシは、歌に有名なようにガチャガチャと聞こえます。キリギリスもわかりやすくチョン・ギースと聞こえます。昼間になくので見つけやすいこともあるでしょう。

class="mushi"だけclass="medatsu1"に class="koe"だけclass="medatsu2"に

function changeclass1(){
    var i;
    var elms = document.getElementsByTagName("span");
    for (i=0;elms.length>i;i++){
        if (elms[i].getAttribute("class")=="mushi"){
            elms[i].setAttribute("class","medatsu1");
        }
    }
}
function changeclass2(){
    var i;
    var elms = document.getElementsByTagName("span");
    for (i=0;elms.length>i;i++){
        if (elms[i].getAttribute("class")=="koe"){
            elms[i].setAttribute("class","medatsu2");
            //elms[i].className = "medatsu2";
        }
    }
}

span.koe にもともと設定されていた color:#009999 と font-weight:bold; がなくなってしまうことに注意してください。

ただしブラウザが読み込んだページに対しての書き換えで, もともとのファイルのデータを書き換えるわけではありません。

class属性を作りながらスタイルを適用する

属性ノードの値を指定するとき、属性ノードがもともとあれば変更され, なければ新しく作られます。

下にある表はclass指定をまったくしていません。でも tr タグを数えて一つおきにclass属性を設定します。そのクラスに対してcssで背景色をつけるように設定してありますので、1行おきに色がついて見やすくなります。普通はページ表示と同時に実行するようにしますが、ここでは動作が分かるように手動で色をつけます。

1行おきにclass="medatsu2"を設定する

function trodd(){
    var i;
    var elms = document.getElementsByTagName("tr");
    for (i=0;elms.length>i;i=i+2){
            elms[i].setAttribute("class","medatsu2");
    }
}

丸付数字はUTF-8で作るhtmlでは機種依存文字ではありません。メールではISO-2022-jpなので機種依存文字になります。

数値参照UnicodeUTF-8JISX0213文字Name
①U+2460E291A03-2D21①CIRCLED DIGIT ONE
②U+2461E291A13-2D22②CIRCLED DIGIT TWO
③U+2462E291A23-2D23③CIRCLED DIGIT THREE
④U+2463E291A33-2D24④CIRCLED DIGIT FOUR
⑤U+2464E291A43-2D25⑤CIRCLED DIGIT FIVE
⑥U+2465E291A53-2D26⑥CIRCLED DIGIT SIX
⑦U+2466E291A63-2D27⑦CIRCLED DIGIT SEVEN
⑧U+2467E291A73-2D28⑧CIRCLED DIGIT EIGHT
⑨U+2468E291A83-2D29⑨CIRCLED DIGIT NINE
⑩U+2469E291A93-2D2A⑩CIRCLED NUMBER TEN
⑪U+246AE291AA3-2D2B⑪CIRCLED NUMBER ELEVEN
⑫U+246BE291AB3-2D2C⑫CIRCLED NUMBER TWELVE
⑬U+246CE291AC3-2D2D⑬CIRCLED NUMBER THIRTEEN
⑭U+246DE291AD3-2D2E⑭CIRCLED NUMBER FOURTEEN
⑮U+246EE291AE3-2D2F⑮CIRCLED NUMBER FIFTEEN
⑯U+246FE291AF3-2D30⑯CIRCLED NUMBER SIXTEEN
⑰U+2470E291B03-2D31⑰CIRCLED NUMBER SEVENTEEN
⑱U+2471E291B13-2D32⑱CIRCLED NUMBER EIGHTEEN
⑲U+2472E291B23-2D33⑲CIRCLED NUMBER NINETEEN
⑳U+2473E291B33-2D34⑳CIRCLED NUMBER TWENTY
㉑U+3251E389913-2841㉑CIRCLED NUMBER TWENTY ONE
㉒U+3252E389923-2842㉒CIRCLED NUMBER TWENTY TWO
㉓U+3253E389933-2843㉓CIRCLED NUMBER TWENTY THREE
㉔U+3254E389943-2844㉔CIRCLED NUMBER TWENTY FOUR
㉕U+3255E389953-2845㉕CIRCLED NUMBER TWENTY FIVE
㉖U+3256E389963-2846㉖CIRCLED NUMBER TWENTY SIX
㉗U+3257E389973-2847㉗CIRCLED NUMBER TWENTY SEVEN
㉘U+3258E389983-2848㉘CIRCLED NUMBER TWENTY EIGHT
㉙U+3259E389993-2849㉙CIRCLED NUMBER TWENTY NINE
㉚U+325AE3899A3-284A㉚CIRCLED NUMBER THIRTY
㉛U+325BE3899B3-284B㉛CIRCLED NUMBER THIRTY ONE
㉜U+325CE3899C3-284C㉜CIRCLED NUMBER THIRTY TWO
㉝U+325DE3899D3-284D㉝CIRCLED NUMBER THIRTY THREE
㉞U+325EE3899E3-284E㉞CIRCLED NUMBER THIRTY FOUR
㉟U+325FE3899F3-284F㉟CIRCLED NUMBER THIRTY FIVE
㊱U+32B1E38AB13-2850㊱CIRCLED NUMBER THIRTY SIX
㊲U+32B2E38AB23-2851㊲CIRCLED NUMBER THIRTY SEVEN
㊳U+32B3E38AB33-2852㊳CIRCLED NUMBER THIRTY EIGHT
㊴U+32B4E38AB43-2853㊴CIRCLED NUMBER THIRTY NINE
㊵U+32B5E38AB53-2854㊵CIRCLED NUMBER FORTY
㊶U+32B6E38AB63-2855㊶CIRCLED NUMBER FORTY ONE
㊷U+32B7E38AB73-2856㊷CIRCLED NUMBER FORTY TWO
㊸U+32B8E38AB83-2857㊸CIRCLED NUMBER FORTY THREE
㊹U+32B9E38AB93-2858㊹CIRCLED NUMBER FORTY FOUR
㊺U+32BAE38ABA3-2859㊺CIRCLED NUMBER FORTY FIVE
㊻U+32BBE38ABB3-285A㊻CIRCLED NUMBER FORTY SIX
㊼U+32BCE38ABC3-285B㊼CIRCLED NUMBER FORTY SEVEN
㊽U+32BDE38ABD3-285C㊽CIRCLED NUMBER FORTY EIGHT
㊾U+32BEE38ABE3-285D㊾CIRCLED NUMBER FORTY NINE
㊿U+32BFE38ABF3-285E㊿CIRCLED NUMBER FIFTY

課題 ファイル名 xclass.html

ボタンをクリックまたはマウスが重なることで、classの値が変化して文字の色や背景色など見栄えが変化する仕組みのあるページをつくりなさい。

index.htmlからは「classの変化」という名前のリンクから行けるようにすること。

理解できない場合は、DOMの課題に共通の作成例を参考にしなさい。


ウェブページ(Jan.2011)
聖愛中学高等学校
http://www.seiai.ed.jp/
Dec.2009 初稿