因为我是JavaScript的初学者,所以我遇到了一个简短的脚本。这是交易: 我有一个包含30个选项的公式,每个选项的值都是1-10。现在我想总结它们并在用户仍在更改选项时显示结果。
function calculate()
{
input1 = parseFloat(document.character.input1.value);
input2 = parseFloat(document.character.input2.value);
input3 = parseFloat(document.character.input3.value);
input4 = parseFloat(document.character.input4.value);
input5 = parseFloat(document.character.input5.value);
input6 = parseFloat(document.character.input6.value);
input7 = and so on
document.getElementById("output").innerHTML = (input1 + input2 + input3 + input4 + input5 + input6 ...).toString();
}
它可以工作,但我想用for-loop缩短它。但无论我尝试什么,我都无法让它发挥作用。有人可以帮我吗?
答案 0 :(得分:4)
您可以尝试这样做:
var total = 0;
for ( var i = 1; i <= 30; i++ ){
total += parseFloat( document.character[ "input" + i ].value );
}
document.getElementById( "output" ).innerHTML = total;
我在这里所做的就是使用变量i
来组合角色对象的键。该值(对于每次迭代)添加到total
变量,该变量最终放在#output
元素的内容中。
答案 1 :(得分:0)
我不明白用户如何更改选项&#34;以便改变选择元素选项的值的总和。但无论如何,你可以这样做:
<select onchange="getTotal(this);">
和功能:
function getTotal(select) {
var total = 0;
var options = select.options;
for (var i=0, iLen=options.length; i<iLen; i++) {
total += +options[i].value;
}
document.getElementById('output').innerHTML = total;
}
如果您有多重选择并且只想对所选的那些进行求和,那么您可以这样做:
total += options[i].selected? +options[i].value : 0;
但请注意,更改选定元素上的侦听器在不同浏览器中的行为可能略有不同。