我有一个网页,我需要在其中添加每个选项。因此,例如,如果有人选择A,那么它将为最终值添加90。目前我通过添加每个选择框的每个ID手动完成它(见下面的代码),但现在我有很多选择框,我认为我需要一个更好的方法!在此先感谢!
我目前拥有的代码片段(理论1是选择框的ID):
var t1 = document.getElementById('theory1');
var tnum1 = 0;
if(t1.options[t1.selectedIndex].value == "Grade 6 - Distinction"){
tnum1 = tnum1+15;
}
if(t1.options[t1.selectedIndex].value == "Grade 6 - Merit"){
tnum1 =tnum1+10;
}
if(t1.options[t1.selectedIndex].value == "Grade 6 - Pass"){
tnum1 = tnum1+5;
} document.getElementById('add').innerHTML = tnum1;
答案 0 :(得分:0)
您应该使用字典来解决此问题
var action;
action["Grade 6 - Distinction"] = 15;
action["Grade 6 - Merit"] = 10;
action["Grade 6 - Pass"] = 5;
var selectedValue = t1.options[t1.selectedIndex].value;
tnum1 = tnum1 + action[selectedValue];
document.getElementById('add').innerHTML = tnum1;
答案 1 :(得分:0)
你可能想看看jQuery或类似的东西。它允许您轻松地迭代文档中具有特定类的所有元素,这可能是您想要的。 (您还需要一种从值映射到数字的方法;将其编码为单个函数,例如。)
答案 2 :(得分:0)
您可以将选项的值设为要添加的值。
<select id="theory1">
<option value="15">Grade 6 - Distinction</option>
...
</select>
然后循环选择并加上值
var selects = document.getElementsByTagName('select');
var tnum1 = 0;
for (var i = 0; i < selects.length; i++){
tnum1 += +selects[i].value;
}
document.getElementById('add').innerHTML = tnum1;