HOME>WEBプログラム覚書>JavaScriptでテーブルの行を交互に色分け[テーブル複数ある場合]

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

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

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

Javascript

  1. window.onload = TrColor;
  2. function TrColor(){
  3.     // ページ内のテーブルを取得
  4.     var table = document.getElementsByTagName("table");
  5.     for(i=0; i<table.length; i++){
  6.         tr = table[i].getElementsByTagName("tr");
  7.         for(j=0; j<tr.length; j++){
  8.             // 偶数の時
  9.             if (j % 2 == 0) {
  10.                 tr[j].className = "trColor";
  11.             }
  12.         }
  13.     }
  14. }
  15.  

HTML

  1. <h5>サンプルテーブル</h5>
  2. <table>
  3.     <tr>
  4.     <th>JavaScript</th>
  5.     <td>ジャバスクリプト</td>
  6.     </tr>
  7.     <tr>
  8.     <th>PHP</th>
  9.     <td>ピーエイチピー</td>
  10.     </tr>
  11.     <tr>
  12.     <th>MySQL</th>
  13.     <td>マイエスキューエル</td>
  14.     </tr>
  15.     <tr>
  16.     <th>XML</th>
  17.     <td>エックスエムエル</td>
  18.     </tr>
  19.     <tr>
  20.     <th>CSS</th>
  21.     <td>シーエスエス</td>
  22.     </tr>
  23. </table>
  24.  
  25. <h5>サンプルテーブル2</h5>
  26. <table>
  27.     <tr>
  28.     <th>JavaScript</th>
  29.     <td>ジャバスクリプト</td>
  30.     </tr>
  31.     <tr>
  32.     <th>PHP</th>
  33.     <td>ピーエイチピー</td>
  34.     </tr>
  35.     <tr>
  36.     <th>MySQL</th>
  37.     <td>マイエスキューエル</td>
  38.     </tr>
  39.     <tr>
  40.     <th>XML</th>
  41.     <td>エックスエムエル</td>
  42.     </tr>
  43.     <tr>
  44.     <th>CSS</th>
  45.     <td>シーエスエス</td>
  46. </tr>
  47. </table>
  48.  

実行結果

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

Javascript

  1. function TrColor(){
  2.     // ページ内のテーブルを取得
  3.     var table = document.getElementsByTagName("table");
  4.     for(i=0; i<table.length; i++){
  5.         // テーブルにIDをセット
  6.         table[i].setAttribute("id", "tb" + i);
  7.         // IDでテーブル取得
  8.         tableAtt = document.getElementById("tb" + i);
  9.         // 取得したテーブルのtrを取得
  10.         tr = tableAtt.getElementsByTagName("tr");
  11.  
  12.         for(j=0; j<tr.length; j++){
  13.             // 偶数の時
  14.             if (j % 2 == 0) {
  15.                 tr[j].className = "trColor";
  16.             }
  17.         }
  18.     }
  19. }
  20.  
投稿日 2007年9月19日 12:59
カテゴリ JavaScript
タグ インターフェイス | サンプルコード
トラックバック URL http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1093

コメント

コメントする
Name
Email Address
URL