• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:順番にセルの背景色をつけたい)

順番にセルの背景色をつけたい - JavaScriptで実現する方法

このQ&Aのポイント
  • javascriptを使ってセルの背景色一定の時間で順番に変える方法を調べています。
  • ボタンをクリックするとセルの背景色が順番に変化するようなものを作成したいと考えています。
  • 下記のソースでalertを出すと実現できるのですが、alertをコメントアウトするとうまくいきません。以上の点、アドバイス等お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • LegaC2
  • ベストアンサー率52% (224/428)
回答No.1

alertを消すとなぜ描画がおかしくなってしまうのかはわかりませんが、setTimeoutという関数を使うと、やりたいことが出来そうです。 見当違いでしたら、すみません。 <html> <head> <title></title> <script type="text/javascript"> function changeColor( i ) { var targetTable = document.getElementById('colorchange'); var targetTr = targetTable.rows[0]; var tdLen = targetTr.cells.length; if( i == 0 ) { targetTr.cells[tdLen - 1].style.backgroundColor='white'; targetTr.cells[0].style.backgroundColor='red'; } else { targetTr.cells[i-1].style.backgroundColor='white'; targetTr.cells[i].style.backgroundColor='red'; } if( i < tdLen - 1 ) { window.setTimeout("changeColor(" + ++i + ")", 1000); } } </script> </head> <body> <table border="1" id="colorchange"> <tr> <td>1111</td> <td>2222</td> <td>3333</td> <td>4444</td> </tr> </table> <button onClick="changeColor(0)">スタート</button> </body> </html>

jackinthe
質問者

お礼

ご回答ありがとうございました。 自分もsetTimeoutで試していたのですが、 このように自身のファンクションを呼び出す 発想はありませんでした。 助かりました。

関連するQ&A