JavaScriptでテーブルの行を交互に色分け[テーブル複数ある場合]

| 2007年09月19日 12:59

昨日のエントリーで書いてあるのはテーブルが複数あった場合、ページ内のtrを一まとめで取得するのでちょっと困ることがある。なんでテーブルが複数あってもテーブルごとにtrを取得するように変更。

また確認して気が付いたのだが背景色指定がFirefoxで利いてなかったのでクラス名を振ってCSSで背景色指定の方がよさそうだ。


window.onload = TrColor;
function TrColor(){
	// ページ内のテーブルを取得
	var table = document.getElementsByTagName("table");
	for(i=0; i<table.length; i++){
		tr = table[i].getElementsByTagName("tr");
		for(j=0; j<tr.length; j++){
			// 偶数の時
			if (j % 2 == 0) {
				tr[j].className = "trColor";
			}
		}
	}
}
<h5>サンプルテーブル</h5>
<table>
<tr>
<th>JavaScript</th>
<td>ジャバスクリプト</td>
</tr>
<tr>
<th>PHP</th>
<td>ピーエイチピー</td>
</tr>
<tr>
<th>MySQL</th>
<td>マイエスキューエル</td>
</tr>
<tr>
<th>XML</th>
<td>エックスエムエル</td>
</tr>
<tr>
<th>CSS</th>
<td>シーエスエス</td>
</tr>
</table>

<h5>サンプルテーブル2</h5>
<table>
<tr>
<th>JavaScript</th>
<td>ジャバスクリプト</td>
</tr>
<tr>
<th>PHP</th>
<td>ピーエイチピー</td>
</tr>
<tr>
<th>MySQL</th>
<td>マイエスキューエル</td>
</tr>
<tr>
<th>XML</th>
<td>エックスエムエル</td>
</tr>
<tr>
<th>CSS</th>
<td>シーエスエス</td>
</tr>
</table>

実行結果

最初なぜかgetElementsByTagName()でtrが取得できなかったので回りくどいのを書いていた。これはこれで何かに使えそうなのでメモ


function TrColor(){
	// ページ内のテーブルを取得
	var table = document.getElementsByTagName("table");	
	for(i=0; i<table.length; i++){
		// テーブルにIDをセット
		table[i].setAttribute("id", "tb" + i);
		// IDでテーブル取得
		tableAtt = document.getElementById("tb" + i);
		// 取得したテーブルのtrを取得
		tr = tableAtt.getElementsByTagName("tr");

		for(j=0; j<tr.length; j++){
			// 偶数の時
			if (j % 2 == 0) {
				tr[j].className = "trColor";
			}
		}	
	}
}

JavaScriptでテーブルの行を交互に色分け[テーブル複数ある場合]タグ:

トラックバック
  • http://www.kantenna.com/cgi-bin/mt/mt-tb.cgi/158
コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)





この情報を登録しますか?

このサイトは次のライセンスで保護されています。

Creative Commons License

IT業界、エンジニア関連の求人
Web業界に精通したエージェントなので、希望に合った仕事、プロジェクト、雇用形態を紹介してくれてしっかりと転職活動をサポートしてくれます。
初心者のみ採用!【スノーグラス】WEB系エンジニア募集
初心者のみのweb系エンジニア求人!なんでだ?そろそろ転職考えてるのでここ行ってみようかな・・・
Twitter Updates