来自函数外部的函数的JavaScript变量

时间:2014-08-11 12:58:49

标签: javascript html

在for循环中声明的变量(变量名= sum)在循环外部不起作用。我错过了什么?该变量需要简单地对表中的总变量求和。在这个例子中,我只剩下一行,但会有很多。

这里是FIDDLE

问题:TOTAL行中没有任何内容。它不是在计算。

<script>
var c1 = 14.94;

function changeq1() {
    var q1 = parseInt(document.getElementById('q1').value);
    var t1 = q1 * c1;
    var total1 = t1.toFixed(2);
    document.getElementById('ukupno1').innerHTML = total1;

    var sum = total1;
}
</script>

HTML PAGE

<table cellpadding="0" cellspacing="0" width="100%" style="border: 1px solid black;">
<tr style="text-align:center;">
                <td>"Stiromix"</td>
                <td><div id="c1">14.94</div></td>
                <td><input type="number" id="q1" min="0" max="9999" onchange="changeq1();"></td>
                <td><div id="ukupno1">0.00</div></td>
</tr>
</tr>
                <tr style="text-align:center;">
                <td>TOTAL</td><td></td><td></td>
                <td><div id="total"><script>document.getElementById("total").innerHTML=sum</script></div></td>
</tr>
</table>

1 个答案:

答案 0 :(得分:2)

问题是你已经在你的函数中声明了sum ,但是隐藏在你小提琴底部的这段代码试图在外面使用它**函数(它与循环无关;事实上,我没有在代码中看到任何循环):

<script>document.getElementById("total").innerHTML=sum</script>

失败,因为没有全局sum变量。

您可能希望将代码放在函数中,而不是放在与其无关的单独脚本块中。 Updated Fiddle那就是说,不清楚为什么你同时拥有total1sum,但我的猜测是这段代码只是部分完成而且total1会是(在最终版本中)只有一行,sum将适用于所有行。或类似的东西。