我正在制作一个HTML网页,接受由","分隔的数字。然后得到所有的总和。我尝试过这段代码,但不能正常工作。
<!DOCTYPE html>
<html>
<body>
<p>Input the numbers you want separated by ","</p>
<input id="num"></input>
<button onclick="sumAll1()">click!</button>
<p id="total"></p>
<script>
function sumAll1(){
document.getElementById("total").innerHTML = sumAll(document.getElementById("num").innerHTML.value);
}
function sumAll() {
var i, sum = 0;
for(i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
</script>
</body>
</html>
答案 0 :(得分:3)
function sumAll1(){
var sum = document.getElementById("num").value.split(',').reduce(add, 0);
document.getElementById("total").innerHTML = sum;
}
function add(a, b) {
return +a + +b;
}
&#13;
<p>Input the numbers you want separated by ","</p>
<input type="text" id="num"/>
<button onclick="sumAll1()">click!</button>
<p id="total"></p>
&#13;
split(',')
将创建一个包含您的数字的字符串数组。
然后,使用reduce
,add()
函数将应用于它们。
在add()
中,我使用一元运算符+
将字符串转换为数字(例如:+"1"
变为1
)。
答案 1 :(得分:0)
现在我这样做:
<!DOCTYPE html>
<html>
<body>
<p>Input the numbers you want separated by ","</p>
<input type="text" id="num"/>
<button onclick="sumAll()">click!</button>
<p id="total"></p>
<script>
function sumAll(){
var i,suma=0;
var array = document.getElementById("num").value.split(',');
for(i = 0; i < array.length; i++) {
suma += parseInt(array[i]);
}
document.getElementById("total").innerHTML = suma;
}
</script>
</body>
</html>
答案 2 :(得分:0)
更改您的javascript代码如下。
<script>
function sumAll1(){
document.getElementById("total").innerHTML = sumAll(document.getElementById("num").innerHTML.value);
}
function sumAll(arguments) {
var values=arguments.split(',');
var i, sum = 0;
for(i = 0; i < values.length; i++) {
sum += values[i];
}
return sum;
}
</script>
试试这个。