午後のひととき、サクッとJSで遊びましょう。
for文の練習でよく出てくる九九表に今回は見出しが付いています。
html,css,jsを使ってコーディングしてみてください。
○JS以外が書き込まれたところからやりたい人はこちら
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"/> <title>9*9</title> <style> table{ border-collapse:collapse; } th,td{ border:1px solid #333; width:50px; height:50px; text-align:center; } th{ background:#1cb8ec; color:white; } </style> </head> <body> <table id="table"></table> <script> 'use strict'; ここに処理を記述 </script> </body> </html>
[解答例]
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"/> <title>9*9</title> <style> table{ border-collapse:collapse; } th,td{ border:1px solid #333; width:50px; height:50px; text-align:center; } th{ background:#1cb8ec; color:white; } </style> </head> <body> <table id="table"></table> <script> 'use strict'; //table要素を取得 const table=document.getElementById('table'); //今回は9*9まで(19なども入れてみよう) const MAX=9; //2重for文(外側のループは行の制御) for(let i=0;i<=MAX;i++){ //tr(table row)タグを作成 let tr=document.createElement('tr'); //内側のループは列の制御 for(let j=0;j<=MAX;j++){ //子要素用の変数一つ宣言しておく let ele; //最初の行か? if(i===0){ //見出しにしたいのでth要素を作成する。 ele=document.createElement('th'); if(j===0){ //iもjも0は左上隅要素なので'X' ele.textContent='X'; }else{ //最初の行のi==0以外はjを入れればよい、 ele.textContent=j; } }else{ //列の最初の要素か? if(j===0){ //最初要素ならばth ele=document.createElement('th'); //中身はiを入れる ele.textContent=i; }else{ //最初の要素でなければele ele=document.createElement('td'); //中身はi*j ele.textContent=i*j; } } //td要素をtr要素に追加 tr.appendChild(ele); } //tr要素をtable要素に追加 table.appendChild(tr); } </script> </body> </html>
コメント