无法输出简单的javascript结果

时间:2014-07-28 10:53:48

标签: javascript

我试图列出文本字段中提供的特定数字以下的所有数字(参见输入),它是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>

2 个答案:

答案 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,那么它将是undefinedundefined+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;
}
相关问题