我试图列出文本字段中提供的特定数字以下的所有数字(参见输入),它是3或5的倍数,然后添加倍数并输出总和(在这种情况下,将div#answers文本更改为总和。
示例:如果该特定数字是10,那么3和5的倍数是< 10,将是3,5,6,9和3,5,6,9的总和是23.我解决了所有问题,但我的生活无法输出答案。
<html>
<head>
<script>
function myFunc() {
var result = [];
var sum;
for(var i = 1; i < document.getElementById('number').value; i++) {
if(3*i < document.getElementById('number').value) {
result[i] = 3*i;
}
if(5*i < document.getElementById('number').value) {
result[i] = 5*i;
}
}
for(i = 0; i < result.length; i++) {
sum += result[i];
}
}
document.getElementById("answers").innerHTML = sum;
</script>
</head>
<body>
<input type="text" id="number" />
<input type="button" onclick="myFunc()" value="Click for answer">
<div id="answers"></div>
</div>
</body>
答案 0 :(得分:2)
如果你整理了JavaScript中的缩进,那么
function myFunc() {
var result = [];
var sum;
for (var i = 1; i < document.getElementById('number').value; i++) {
if (3 * i < document.getElementById('number').value) {
result[i] = 3 * i;
}
if (5 * i < document.getElementById('number').value) {
result[i] = 5 * i;
}
}
for (i = 0; i < result.length; i++) {
sum += result[i];
}
}
document.getElementById("answers").innerHTML = sum;
正如您所看到的,将结果div的总和分配到函数之外 - 这就是它不能工作的原因。
答案 1 :(得分:1)
您的代码中存在许多问题。
1)从结果中分配结果。最后一行。
2)您应该使用result.push(3*i);
而不是result[i]=3*i
。
3)如果您没有初始化变量sum
,那么它将是undefined
和undefined+10=NaN
试试这个
function myFunc() {
var result = [];
var sum=0;
for(var i = 1; i < document.getElementById('number').value; i++) {
if(3*i < document.getElementById('number').value) {
result.push(3*i);
}
if(5*i < document.getElementById('number').value) {
result.push(5*i);
}
}
for(i = 0; i < result.length; i++) {
sum += (result[i]);
}
document.getElementById("answers").innerHTML = sum;
}