DOMの基本2
<HTMLファイル>
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <meta http-equiv="Content-Script-Type" content="text/javascript" charset="utf-8" /> <title>Helloを表示</title> <script type="text/javascript" src="hellow.js" charset="utf-8"></script> </head> <body> <div id="div1"> <span id="span1">span1</span> <span id="span2">span2</span> </div> <div id="div2"> <span id="span3">span3</span> <span id="span4">span4</span> </div> <div class="testA"> <span class="testB">span3</span> <span id="span4">span4</span> </div> <div class="testA"> <span class="testB">span3</span> <span id="span5">span4</span> </div> </body> </html>
<JSファイル>
//DOMはHTMLやCSSのデータを取得、操作する仕組み window.onload = function(){ //id名がdiv1の要素を取得する var div1 = document.getElementById('div1'); //取得した要素の背景を緑にする div1.style.backgroundColor = '#00FF00'; //要素の内容を文字列で取得 console.log(div1.innerHTML); //※elems。『s』に注意 var elems2 = document.getElementsByTagName('div'); //配列で取得される console.log(elems2); console.log(elems2[0]); //「*」でも可能。全てのタグが格納される var elems3 = document.getElementsByTagName('*'); console.log(elems3); //IE8以下では対応していない var elems4 = document.getElementsByClassName("testA"); console.log(elems4); //要素番号を指定する。要素番号を省略した場合はエラーになる。 全てにかけたい時はfor文で! elems4[0].style.backgroundColor = '#FFFF00'; var elems5 = document.getElementsByClassName("testB"); console.log(elems5); //下の書き方だとエラーが発生。 //elems5[0].style.font = 'bold'; //合わせてフォントも指定しなくてはならないみたいです。 elems5[0].style.font = 'bold large "MS ゴシック"'; }
<Firefoxのコンソール画面>
document.getElementsByTagNameが配列で取得されているのが確認できる。
<Firefoxの結果>
document.getElementsByClassNameが配列で取得されているのが確認できる。
<IE8での結果>
IE8の画面で確認したところdocument.getElementsByClassNameの内容が反映されていないのがわかる。