Javascript 如何遍历多个下拉列表并访问其选项值

Javascript 如何遍历多个下拉列表并访问其选项值,javascript,drop-down-menu,html-table,Javascript,Drop Down Menu,Html Table,我正在为一个基本的GPA计算器写代码。基本上,它是一个3列表格,两个文本区域用于课程名称/学分,以及一个下拉列表,其中包含字母等级(a+,C,B-)及其对应的分值作为选项值,如下所示 <td><select name="letterGrades"> <option value="0.7">A+</option>> <option value="1.3">A-</option>> <option value=

我正在为一个基本的GPA计算器写代码。基本上,它是一个3列表格,两个文本区域用于课程名称/学分,以及一个下拉列表,其中包含字母等级(a+,C,B-)及其对应的分值作为选项值,如下所示

<td><select name="letterGrades">
<option value="0.7">A+</option>>
<option value="1.3">A-</option>>
<option value="2.7">C+</option>
</option>
</select>
</td>

A+>
A->
C+
我需要遍历这些行,获取每个课程的选项值或“分数”

var table = document.getElementById(tableID);

for(var i=0; i<rowCount; i++) {

 grade = table.rows[i].cells[2].options[letterGrades.selectedIndex].id; //is this allowed?
 credits = parseFloat(table.rows[i].cells[1].value);
 totalHours += parseFloat(table.rows[i].cells[1].value);  
 perCourse += grade*credits

 } 

totalGPA = perCourse/totalHours;
var table=document.getElementById(tableID);
对于(var i=0;i首先进入
项。如果可能的话,我建议您使用
document.getElementsByTagName('select')
获取页面上所有
标记的列表。然后,对于每个
标记,调用
theSelectTag.getElementsByTagName('option')
(其中,
selecttag
是返回节点列表中的一个对象)。然后,您可以通过
value
属性(yarly)访问它们的值,并通过
textContent
属性访问它们的标签


getElementsByTagName
返回一个
NodeList
对象,但您可以将其视为一个
数组

,多亏了zneak的回答,我终于让一切都正常工作了

var select = document.getElementsByTagName('select');
var options = document.getElementsByTagName('option');
var textarea = document.getElementsByTagName('textarea');

for(var i=1; i<rowCount; i++) {  //i=1, starts at the second row, assuming you have a header
    var grades = select[i].options[select[i].options.selectedIndex].value; //gets the selected item for each select tag from the dropdownlist
    credits = parseFloat(textarea[i].value); //same goes for textareas
    totalHours += parseFloat(textarea[i].value);            
    perCourse += grades*credits;    
}       
totalGPA = perCourse/totalHours;
var select=document.getElementsByTagName('select');
var options=document.getElementsByTagName('option');
var textarea=document.getElementsByTagName('textarea');

对于(var i=1;Ismell)来说,讽刺的是,它就像家庭作业一样。它奏效了,我也不得不用它来获得学分(textare)。再次感谢。