2014-12-03 67 views
0

我想創建一個腳本來生成具有以下規格的html。在數組中存儲數據使用javascript扔循環

  1. 類名字段是強制性的。
  2. 根據類變量字段的值生成數據類型和變量名稱字段的個數。
  3. 根據函數的值字段生成返回類型的數量,函數名稱和參數字段。
  4. 根據參數字段的值生成數據類型和變量名稱字段的數量。
  5. 函數名稱和變量名稱必須以字母開頭。
  6. 當用戶單擊生成代碼時顯示輸出。
  7. 數據類型/返回類型組合框的值應該是int,float,double和void。
  8. 返回類型組合框值應該是int,float,double和void。

這是我的代碼

 function change() { 
 
      var txt = "" 
 
      var txt2 = "" 
 
      var m = document.getElementById("m") 
 
      var f = document.getElementById("f") 
 
      var t1 = document.getElementById("Text2").value 
 
      
 
      var array = new Array() 
 
      txt2 += "Class " + t3 + "<br /> {" 
 
      
 
      
 
      if (t1 == 0) { 
 
       txt += "" 
 
      } 
 
      else { 
 
       
 
       for (var a = 0; a < t1; a++){ 
 

 
        for (var i = 0; i < t1-1; i++) { 
 
         txt += "Data type <select id='" + i + "'>" 
 
         txt += "<option value='INT'> int </option>" 
 
         txt += "<option value='FLOOT'> floot </option>" 
 
         txt += "<option value='VOID'> void </option>" 
 
         txt += "<option value='DOUBLE'> double </option>" 
 
         txt += "</select> &nbsp;&nbsp;" 
 
         
 
         
 
         for (var n = 0; n < i; n++) { 
 
          document.write(array[n] + "<br>"); 
 
          
 
         } 
 
         
 

 
         
 
        } 
 

 
        txt += "Variable name <input type='text' id='" + a + "' /> <br />" 
 
        m.innerHTML = txt 
 
        txt2 += "&nbsp;" + document.getElementById(a).value 
 
        txt2 += "&nbsp;&nbsp;&nbsp;&nbsp;" + document.getElementById(i) 
 
       } 
 
       
 
       
 
      } 
 
      
 
      f.innerHTML = txt2 
 

 
      
 
     } 
 

 
    </script>

 

 
Enter Class Name <input id="Text1" type="text" /> <br /><br /> 
 

 
    Enter Number of Class variables <input id="Text2" type="text" onchange="change()" /> <br /> <br /> 
 
    <h5 id="m"> </h5> 
 
    Enter Number of Functions <input id="Text3" type="text" onchange="change()" /> <br /> 
 
    <br /><br /> 
 

 
    <h5 id="f"> </h5> 
 

 
    <input id="Button1" type="button" value="button" onclick="change()" />

+2

你好,歡迎來到Stack Overflow。你的問題幾乎是模範,有明確的要求和(幾乎)可執行的代碼。但是,也請添加問題說明。什麼不行?你得到什麼樣的行爲,你不想要什麼,缺少什麼行爲?我們應該輸入什麼測試輸入來重現您的問題?應該發生什麼,以及發生了什麼? – Amadan 2014-12-03 06:39:11

+0

我想通過將它們存儲在數組中來從循環中獲取值。那麼我想用這個值來顯示它在最終的輸出..我的問題是與循環我不能得到的值,並顯示在最終輸出 – omania 2014-12-03 06:45:10

+0

你在哪裏填寫你的'數組'? – Grundy 2014-12-03 07:04:02

回答

0

如果您檢查控制檯,你會發現錯誤: 「T3沒有定義」。這是因爲你從未定義過t3。如果我把你的附近函數的頂部以下,它的工作原理(最高點):

var t3 = document.getElementById("Text1").value; 

它最終將會被突破,因爲你比更多的問題。首先,你的array不打印的一個重要原因是你從未定義過它的內容。

請注意,這是任何人閱讀代碼,其中變量t1是元素Text2的內容,t3內容的Text2地獄,並在一個循環計數器是ain。考慮將變量名稱更改爲className,methodCount,variableCount等等。現在對我來說這真是太糟糕了,我保證在大約一個星期之內,如果它還沒有出現,它也將成爲地獄。

另外,請注意,document.write是一個非常危險和破壞性的力量。只有在絕對必要時才使用它,甚至可以三思而後行。使用element.innerHTML = ...element.appendChild(...)document.createElement(...)。第一種方法比較容易,幾乎總是比document.write更好的主意和更可控的方法。我看到你已經在使用innerHTML,所以這不應該很難。對待document.write就好像它是放射性的:如果你絕對有要觸摸它,要聰明,並穿上生物危害套裝。

最後,你的循環不能做你想做的事,甚至沒有做到。正如我所說,由於無意義的變量名稱和奇怪的限制,甚至很難遵循你的邏輯。你會發現,當你給你的變量更好的名字時,你會清楚地看到你的程序實際上在做什麼。

後終於,一個愚蠢的觀察:「floot」不是一個字,我相當肯定你想把「漂浮」在那裏。

相關問題