我想知道为什么这个循环工作,即使我添加额外的变量,因为我很好奇。我只期望numbers1在循环中工作。对不起,我是Javascript的新手
答案 0 :(得分:1)
无论您添加了多少字段,它都有效,因为您正在使用getElementsByName
获取包含name="s"
和name="a"
的字段,这些字段会找到包含这些字段的所有字段名称无论有多少都有,并且您正在使用循环。
但请注意,您的输出始终只是最后一对结果,因为您正在分配#sum
元素innerHTML
。
答案 1 :(得分:0)
我不明白你不明白的是什么。 程序对名为" s"的元素中的值求和。和" 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;
});