2016-10-03 3 views
-1
<!DOCTYPE html> 
<html> 
<head> 
<title></title> 
<script type="text/javascript"> 

    var r = prompt ("how many rows ?"); 
    var c = prompt ("how many columns ?"); 
    var red = prompt ("how red ?"); 
    var green = prompt ("how green ?"); 
    var blue = prompt ("how blue ?"); 
    document.write('<table style="width:100%"  bgcolor="'+red+''+green+''+blue+'">'); 
    for(var r = i; i > -1; i--){ 
     document.write('<tr>'); 
     for(var c = i; i > -1; i--){ 
      document.write('<th></th>'); 
     }; 
     document.write('</tr>'); 
    }; 
    document.write('</table>'); 

</script> 
</head> 
<body> 

</body> 
</html>         

私のコードで何が問題になっていますか?私はすべてのプロンプトに答えますが、画面上で何も起こりません。私の教授は、私はforループの中にforループが必要だと言いました、何が欠けていますか?JavaScriptのプロンプトを使用してhtmlテーブルを作成するウェブサイトを作成するにはどうすればよいですか?

+0

doc.writeは、 "right there"と書いています。つまり、あなたのテーブルテーブルをあなたの文書の正確な場所に吐き出しているということです。テーブルは ' 'という内容ですが、文書の' 'に吐き出しています。 –

+0

ドキュメント全体を移動する必要があります( '

'); \t \t for(var r = i; i> -1; i - ){ \t \t \t document.write( ''); \t \t \t(VARのC = I; I> -1; I - )のために{ \t \t \t \tのdocument.write( '')。 \t \t \t}; \t \t \t文書。書き込み( ''); \t \t}; \t \t document.write( '
'); part to body? –

+1

あなたはそれを試してみませんか?私たちが助けてくれると嬉しいですが、あなたは自分の宿題をやっているはずです... –

答えて

0

複数の修正:各呼び出しは体の内容が上書きされますので、

  1. は、document.writeを複数回使用しないでください。
  2. 右辺の式(この場合は変数)の値が左側の変数に代入されるため、反復子割り当てロジックはi = rではなく、r = iではありません。
  3. ループ内のループに別のイテレータ変数(例:j)を使用する必要があります。そうしないと、外側ループと干渉します。あなたは、私は/ jは0よりも大きいしながら反復(行の列の)最大数からデクリメントしない予定されている場合は-1
  4. イテレータ条件は1でオフになってい

var r = prompt ("how many rows ?"); 
 
    var c = prompt ("how many columns ?"); 
 
    var red = prompt ("how red ?"); 
 
    var green = prompt ("how green ?"); 
 
    var blue = prompt ("how blue ?"); 
 
    var html = '<table style="width:100%" bgcolor="'+red+''+green+''+blue+'">'; 
 
    for(var i= r; i > 0; i--){   
 
     html += '<tr>'; 
 
     for(var j = c; j > 0; j--){ 
 
      html +='<th></th>'; 
 
     }; 
 
     html += '</tr>'; 
 
    }; 
 
    html +='</table>'; 
 
    document.write(html); 
 
    //or else instead of document.write, use something like the line below :  
 
    //document.body.innerHTML = html;
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<title></title> 
 
</head> 
 
<body id="container"> 
 

 
</body> 
 
</html>

+0

これがうまくいった答えをありがとう。申し訳ありませんが私の評判の有用なBCを投票することはできません:P –

1

1つの問題は、i変数を初期化していないことです(コードに「var i」はありません)。この変数は、ループのインデックス変数で、ユーザーが入力した行/列入力変数に設定します。

また、ネストループを配置するときに、インデックス変数(i)を再利用しようとしないでください。

、ループイテレータのロジックを通して働く、あなたが実際にループのようなものにI> 0

の変更を調整するようにループを実行したい:

for(var i = r; i > 0; i--){ 
    document.write('<tr>'); 
    for(var j = c; j > 0; j--){ 
... 

そして、何番目をチェックタグがHTML内にある場合は、実際にtdを表示する

「セル」にコンテンツがないため、作成したテーブルが表示されないため、コンテンツを追加するか、使用時にテーブルを表示できますブラウザ開発ツール

関連する問題