JavaScript: table td にイベント処理を付ける (1-2)

body の onload() で初期化処理を実行する。
td.onclick= でクリックイベントの関数をつける。
セルをクリックすると色が変わる
0-0 0-1 0-2 0-3
1-0 1-1 1-2 1-3
2-0 2-1 2-2 2-3

デバッグ出力

(2009-2022/04)
動作     : 

◎ノート(2012/02)
・JavaScript で td.onclick= で処理をつける。

for (let i=0; i<a.length; i++){
    //let に注意。
    //let td では 1),2) どちらでも正常に動く。
    //var td では 2) は正常に動作しない。
    let td = a[i];
    td.onclick = function(){
        onclickTd(this); //1) this を個別の td を表す。
        //onclickTd(td); //2)
    };
}

・昔の JavaScript には let や const がなく、var のみだったので、
 1), 2) の違いに注意というのが重要な話だった。

・現在は、変数を宣言をするときには var を使わず、let を使う。
  td に再代入しないなら const の方が良い。

・(参考) var td = a[i]; で 2) onclickTd(td); にした場合。
  変数 td が 1個しか用意されず、関数 onclickTd(td) の
  引数 td は a[i] の最後の要素、(2,3) の td になる。そのため、
  どの td をクリックしても (2,3) の td に対して処理が行われる。

inserted by FC2 system