2016-10-03 53 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寫它的「在那裏」。這意味着你正在將你的表格放到你的文檔的確切位置 - 表格是''的內容,但是你正在將其吐出到文檔的''中。 –

+0

所以我應該移動整個document.write('

'); \t \t爲(VAR R = I; I> -1; I - ){ \t \t \t文件撰寫( ''); \t \t \t爲(VAR C = 1; I> -1; I - ){ \t \t \t \t文件撰寫( ''); \t \t \t}; \t \t \t文件。寫(''); \t \t}; \t \t document.write('
');身體的一部分? –

+1

你爲什麼不嘗試呢?雖然我們很樂意提供幫助,但你應該自己做作業...... –

回答

0

多更正:

  1. 不要使用文件撰寫多次,因爲每次調用將覆蓋該正文的內容。
  2. 您的迭代器賦值邏輯向後 - 分配i = r,而不是r = i,因爲右側的表達式(變量在這種情況下)的值被分配給左側的變量。
  3. 您需要爲內部for循環使用單獨的迭代器變量(例如j),否則會干擾外部循環。
  4. 迭代器條件是關閉1.如果打算從最大數量遞減(行,列)然後循環,同時I/j爲大於0,不爲-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

謝謝你這個工作的答案。對不起,我不能投票給我有用的信譽:P –

1

一個問題是你沒有初始化我的變量(你的代碼中沒有'var i')。該變量是循環的索引變量,將其設置爲用戶輸入的行/列輸入變量。

另外,當你放置一個循環時,不要嘗試重用索引變量(i)。

並通過循環迭代的邏輯工作,你真正想要的循環運行到循環條件I> 0

更改爲類似:

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

並檢查了個什麼標籤是在HTML中,你真的想td

然後,你仍然不會看到你剛剛創建的表,因爲'細胞'中沒有內容,所以你可以添加內容,或者當你使用時你可以看到表瀏覽器開發者工具。

相關問題