我想知道为什么这个循环工作,即使我添加额外的变量,因为我很好奇。我只期望number1在循环中起作用。对不起,我是Javascript新手
不管你添加了多少个字段,它都可以工作,因为你使用getElementsByName
来获取name="s"
和name="a"
的字段,它将找到所有具有这些名称的字段,无论有多少个,并且你正在使用循环。
请注意,您的输出将始终只是最后一对结果,因为您正在分配给#sum
元素的innerHTML
。
我不懂你不懂的东西。程序对命名为"s"one_answers"a"的元素中的值求和。
它使用一个循环同时将它们加在一起,这是一个坏主意:只有当元素数量相等时才有效。
分隔两者:
function sumElementsByName(name) {
var texts = document.getElementsByName(name);
var sum = 0;
for (var i = 0; i < texts.length; i++) {
sum += parseInt(texts[i].value || 0);
}
return sum;
}
document.getElementById("btn").addEventListener("click", function() {
var sum_s = sumElementsByName("s");
var sum_a = sumElementsByName("a");
document.getElementById("sum").innerHTML = sum_s + " and " + sum_a;
});