2011年05月12日

javascript テーブル 列の背景色 変更 cellIndexプロパティ

スポンサード リンク

 テーブルの列にクラス名を付けて背景色を変更
object.className=object.cellIndex

道府県 県庁所在地 人口
北海道 札幌 550万人
大阪府 大阪 886万人
兵庫県 神戸 559万人

サンプルソース

<html>
 <head>
  <title>javascript テーブルの列の背景色、変更</title>
<style type="text/css">
<!--
#myTBL{
 border-collapse: collapse;  /*枠線 collapse(重ねて表示 一本線)*/
  color : black;  /*テーブルの文字色*/
   background-color : #cceeff;  /*テーブルの背景色*/
  }
#myTBL th{
 color : blue;  /*見出しセルの文字色*/
  background-color : gold;  /*見出しセルの背景色*/
   width :130px;  /*セルの幅*/
 }
#myTBL td{
  /* background-color : #cceeff; 'td'要素に背景色は設定しない */
  }

  /* javascriptで付加するクラス名 */
.cellIDX0{
  background-color : pink;
 }
.cellIDX1{
  background-color : yellow;
 }
.cellIDX2{
  background-color : lightgreen;
 }
-->
</style>

<script type="text/javascript">
<!--
var num = 0;
 function cellINX(){ num ^= 1;//トグルスイッチ 0と1の切り替え ^ 排他的論理和
            // ID名がmyTBLであるテーブルのオブジェクトを取得。
  var Tbl=document.getElementById("myTBL");
           //rowsコレクションで行を参照する。 テーブル内のtrをループ。
   for(var i=0;i< Tbl.rows.length;i++){ //length:エレメントの数を返す。
               // tr内のtdをループする。セルへの参照はrowsのcellsコレクション。
    for(var j=0;j< Tbl.rows[i].cells.length;j++){
     if(num == 1){//numが1ならクラス名を付加0なら削除
 Tbl.rows[i].cells[j].className="cellIDX"+Tbl.rows[i].cells[j].cellIndex;}
      else{Tbl.rows[i].cells[j].className="";}
      }
    }
  }
//-->
</script>

</head>
<body>
<table id="myTBL" border="1" cellpadding="5">
  <tr><th>道府県</th><th>県庁所在地</th><th>人口</th></tr>
  <tr><td>北海道</td><td>札幌</td><td>550万人</td></tr>
  <tr><td>大阪府</td><td>大阪</td><td>886万人</td></tr>
  <tr><td>兵庫県</td><td>神戸</td><td>559万人</td></tr>
</table>
   <p><input type="button" value="セルのインデックス番号でクラス名を付加/削除。" onclick="cellINX()" /></p>
</body>
</html>

object.cellIndex=値
 セルのインデックス値はrows、cells コレクション
Table cellIndexプロパティ、セルのインデックス値の取得をご覧ください。
object.className='クラス名';クラス名設定、削除
Tbl.rows[i].cells[j].className="cellIDX"+Tbl.rows[i].cells[j].cellIndex;
上記のコードはテーブルの[i]行の[j]番目のセルに文字列 "cellIDX"+cellIndex番号
クラス名を付けています。  cellIndex番号は'0'から始まります。
Tbl.rows[i].cells[j].className="";でクラス名を削除します。
サンプルの表では 一列目の各セルは'cellIDX0'、二列目の各セルは 'cellIDX1'
三列目の各セルは 'cellIDX2' とクラス名が付きます。
スタイルシートにはこの三ツのセレクタとbackground-colorプロパティを書いておきます。
id セレクタは class セレクタよりも優先されます。
 idSpanの背景色には'pink'が cellIDX2には'lightgreen'が設定されています。
   <span id="idSpan" class="cellIDX2">javascriptサンプル</span>
javascriptサンプル :idセレクタが優先されclassセレクタは反映されません。
   <span class="cellIDX2">javascriptサンプル</span>
javascriptサンプル :idを削除しました。


#myTBL td{
  /* background-color : #cceeff; 'td'要素に背景色は設定しない */
  }
上記のidセレクタ (#myTBL td)に背景色を設定すると後からクラス名を各'th','td'要素に付けても
idセレクタが優先されるのでclassセレクタの背景色は反映されず
スクリプトを実行しても背景色は変わりません。
#myTBL th セレクタにはbackground-color : gold;が設定してあるので
見出しセルの背景色はそのままです。

さくらのレンタルサーバ スタンダード
Table cellIndexプロパティ、セルのインデックス値の取得
HTML DOM Table rows,cellsコレクション
テーブルの行、表示/非表示 javascript
HTML テーブル( 表 ) の作成。
テーブルの表題を固定してデータ部分だけをスクロールさせる。
テーブルの行の背景色を一行おきに変えます。
テーブルの行の文字色,背景色を変えてハイライトします。
サーバーカウボーイ

posted by javaScript at 19:57 | 大阪 ☁ | テーブル | このブログの読者になる | 更新情報をチェックする
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。