2013-03-24 4 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'을 할당하기 전에 함수에서 반환하고 있습니다 :

는 DOM 조작 이후에 return 문을 이동하십시오 –

답변

0

return 문은 함수를 종료하고 DOM에 결과를 대입 할 때 어디에 아래 라인의 실행을 방지 요소. Mozilla's documentation :

함수가 return이 호출 된 지점에서 즉시 중지됩니다. 더 유연하고 재사용 할 수 함수에서 렌더링을 분리

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을 업데이트하기 전에 함수에서 돌아온 것처럼 보입니다.

document.getElementById('sum').innerHTML = sum; 
return sum; 
관련 문제