2013-03-24 53 views
1

我想从数组中返回一个总和,并出于某种原因它不显示。我尝试了各种各样的东西,但由于某种原因,它没有返回数组的总和。当我从控制台调用tableSum(sum)时,它会返回它,但它不会在JavaScript中发生。总和功能不显示

这里是我的代码:

var tableSum = function() { 
    'use strict'; 
    var sum = 0, 
     i; 
    for (i = 0; i < numberArray.length; i += 1) { 
     sum += numberArray[i]; 
    } 
    return sum; 
    document.getElementById('sum').innerHTML = sum; 
}; 

HTML:

<table border="1"> 
    <tr> 
     <td style = "text-align:right;">Sum:</td> 
     <td style="width:100px" id = "sum">&#160;</td> 
    </tr> 
+0

你从函数返回分配'innerHTML'前 – 2013-03-24 00:51:58

回答

0

return声明退出功能,防止下面一行的执行,你尝试的结果分配给DOM元件。从Mozilla's documentation

函数立即停止在返回被调用的地方。

尝试,而不是执行以下操作:

var tableSum = function() { 
    'use strict'; 
    var sum = 0, i; 
    for (i = 0; i < numberArray.length; i += 1) { 
     sum += numberArray[i]; 
    } 

    return sum; 
}; 

document.getElementById('sum').innerHTML = tableSum(); 

从功能分离渲染使得它更加灵活,可重复使用,并允许您使用相同的功能更新,例如其他的DOM元素。

0

它看起来像你在更新DOM之前从函数返回。

尝试DOM操作后移动return语句:

document.getElementById('sum').innerHTML = sum; 
return sum;