如何在JavaScript中对每个循环的选项值进行求和

时间:2014-04-16 11:47:08

标签: javascript for-loop add options

因为我是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缩短它。但无论我尝试什么,我都无法让它发挥作用。有人可以帮我吗?

2 个答案:

答案 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;

但请注意,更改选定元素上的侦听器在不同浏览器中的行为可能略有不同。