2017-03-28 4 views
1

이 코드가 spentScores을 NaN으로 반환하는 이유는 무엇입니까?

$(document).ready(initScores()); 
 

 
var lvlScores = 0; 
 
var currentScores = 0; 
 
var spentScores = 0; 
 

 
function initScores() { 
 
    console.log(spentScores); 
 
    console.log(spentScores + 44); 
 
    console.log(lvlScores); 
 
    initLvlScores(); 
 
    initSpentScores(); 
 
    initCurrentScores(); 
 
} 
 

 
function recountLvlScores() { 
 
    initScores(); 
 
    clearStatistics(); 
 
} 
 

 
function initLvlScores() { 
 
    var lvl = parseInt($('.lvl-select').val()); 
 
    switch (lvl) { 
 
    case 1: 
 
     lvlScores = 1000; 
 
     break; 
 
    case 2: 
 
     lvlScores = 1200; 
 
     break; 
 
    case 3: 
 
     lvlScores = 1500; 
 
     break; 
 
    case 4: 
 
     lvlScores = 2000; 
 
     break; 
 
    case 5: 
 
     lvlScores = 3000; 
 
     break; 
 
    } 
 
} 
 

 
function initSpentScores() { 
 
    $('.statistics').each(function() { 
 
    console.log("!!" + spentScores + parseInt($(this).val())); 
 
    console.log("!!" + parseInt($(this).val())); 
 
    spentScores = spentScores + parseInt($(this).val()); 
 
    }); 
 
} 
 

 
function initCurrentScores() { 
 
    currentScores = lvlScores - spentScores; 
 
    $('.scores').html(currentScores); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>

콘솔 :

scoresEditCounting.js:9 undefined 
scoresEditCounting.js:10 NaN 
scoresEditCounting.js:11 undefined 
scoresEditCounting.js:40 !!undefined44 
scoresEditCounting.js:41 !!44 
scoresEditCounting.js:40 !!NaN44 
scoresEditCounting.js:41 !!44 
+0

'document'가 이미 준비가되었을 때 JavaScript가 페이지 하단에 있습니까? – krillgar

+0

예, // console.log ("!!"+ parseInt ($ (this) .val())); "!! 44" –

+0

여기서 HTML 요소는 –

답변

4

업데이트이 라인 :

$(document).ready(initScores()); 

이 사람 :

$(document).ready(initScores); 

준비가되었을 때 기능 호출 페이지를 원하게됩니다. 그렇지 않으면 페이지가 준비되기 전에 DOM 요소에 액세스하려고합니다.

+0

그렇지 않습니다. 콘솔 로그가 실행 중이라면 실행 중입니다. – Orpheus

+1

@ 오페어 실행 중입니다. _early_ – SeinopSys

+0

@Orpheus 페이지가 준비되기 전에 DOM에서 요소를 가져 오는 중입니다. 그래서 그것이 실패하게 만듭니다. – Ibu