2015-02-23 63 views
-1

我不得不創建一個函數,接受用戶輸入的名字和數字等級爲一系列的學生。我點擊添加按鈕將數據添加到數組。現在我要顯示名稱和等級,但將數字等級轉換爲字母等級。除了字母改變的數字之外,我有一切工作。我的代碼會告訴你,我使用了for循環與if語句,但它似乎並沒有抓住數據。這裏是我的代碼:更改數字等級到字母等級

html> 
    <head> 
     <meta charset=utf-8 /> 
     <title>Compute the average marks and grade</title> 

     <link rel="stylesheet" type="text/css" href="Looping.css"> 

     <meta REQUIREMENT= 
      "Using JavaScript, create a function that will accept user 
      input for the name and grade for a series of students. As 
      input is given, store information (name and grade) in an 
      array. Click the 'Add' button after entering each student's 
      data. Click the 'Display' button to display the name and grade 
      for each student and, then, the average for all grades."> 


     <script> 


      var userName, userAge; 
      var nameData = []; 
      var gradeData = []; 


      function addToArray() { 
       txtName = document.getElementById("txtName").value; 
       txtGrade = parseInt(document.getElementById("txtGrade").value); 

       alert(txtName + " " + txtGrade); 
       nameData.push(txtName); 
       gradeData.push(txtGrade); 

       document.getElementById("txtName").focus(); 
       document.getElementById("txtName").value = ""; 
       document.getElementById("txtGrade").value = ""; 


      } 

      function displayContent() { 

       for (var i = 0; i < nameData.length; i++) { 

       //document.write("" + nameData[i] + " ," + gradeData[i] + "<br>"); 

        if (gradeData >= 90) { 

         document.write("" + nameData[i] + "A"); 
        } 
        else if (gradeData >= 80) { 

         document.write("" + nameData[i] + "B"); 
        } 
        else if (gradeData >= 70) { 
         document.write("" + nameData[i] + "C"); 
        } 
        else if (gradeData >= 60) { 
         document.write("" + nameData[i] + "D"); 
        } 
        else { 
         document.write("" + nameData[i] + "F"); 
        } 

       } 

       } 



     </script> 

</head> 
<body onload="showPrompt()"> 
    <h2>Compute Average Grades</h2> 



    <div id="content"> 
    <p>Enter names and grades into a tow-dimensional array (and array of two arrays) 
      using text boxes for input and two buttons; one to "Add" input to the arrays 
      and one to calculate the average grade and "Display" the information in the arrays. 
    </p> 
    <p> 
     <label for="txtName">Student Name:</label> 
     <input type="text" id="txtName" value=""> 
      <br><br> 
     <label for="txtGrade">Grade:</label> 
     <input type="text" id="txtGrade" value=""> 
      <br><br clear: left> 
    </p> 
    <div style="text-align:center"> 
    <input type="button" class = "btnClass" value="Add" onclick="addToArray()">&nbsp;&nbsp; 
    <input type="button" class = "btnClass" value="Display" onclick="displayContent()"> 
    </div> 
</div> 
</body> 
</html> 
+1

'gradeData'似乎是一個數組,如何數組比較數字'90'等? – adeneo 2015-02-23 22:24:56

+0

正在做作業嗎? – floor 2015-02-23 22:28:12

+0

adeneo和地板,感謝您的快速回復。你很快就會發現這些東西太快了。我不能等到我有這些技能的那一天。 – 2015-02-23 22:33:19

回答

0

你displayContent功能應該是這樣的:

 function displayContent() { 

      for (var i = 0; i < nameData.length; i++) { 

      //document.write("" + nameData[i] + " ," + gradeData[i] + "<br>"); 

       if (gradeData[i] >= 90) { 

        document.write("" + nameData[i] + "A"); 
       } 
       else if (gradeData[i]>= 80) { 

        document.write("" + nameData[i] + "B"); 
       } 
       else if (gradeData[i]>= 70) { 
        document.write("" + nameData[i] + "C"); 
       } 
       else if (gradeData[i]>= 60) { 
        document.write("" + nameData[i] + "D"); 
       } 
       else { 
        document.write("" + nameData[i] + "F"); 
       } 

      } 

      } 
+0

謝謝iSchool。正是這些小事毀了我。 – 2015-02-23 22:40:14

0

你缺少在所有if報表時gradeData索引引用。例如,第一個說:

if (gradeData >= 90) { 

。 。 。它應該說:

if (gradeData[i] >= 90) {