2016-12-05 3 views
-3

저는이 코드에서 start() 만 정의하면이 코드에서 모든 것이 작동하지만 time()을 선언하면 오류가 발생합니다 : " TypeError : start가 함수가 아닙니다. " 문제가 어디 있습니까 ?? `당신은 사용했습니다, 다음은 코드,Javascript, TypeError : "function"은 함수가 아닙니다

//start 
 
function start(){ 
 
\t 
 
\t //removes title and start boxes 
 
\t var body=document.getElementsByTagName("body")[0]; 
 
\t var start_box=document.getElementById("start_box"); 
 
\t var title_box=document.getElementById("title_box"); 
 
\t body.removeChild(start_box); 
 
\t body.removeChild(title_box); 
 
\t 
 
\t //creates stats box 
 
\t var stats_box=document.createElement("div"); 
 
\t stats_box.id="stats_box"; 
 
\t var time=document.createElement("p"); 
 
\t time.id="time"; 
 
\t var points=document.createElement("p"); 
 
\t points.id="points"; 
 
\t stats_box.appendChild(points); 
 
\t stats_box.appendChild(time); 
 
\t body.appendChild(stats_box); 
 
\t 
 
\t //creates play box 
 
\t var play_box=document.createElement("div"); 
 
\t play_box.id="play_box"; 
 
\t body.appendChild(play_box); 
 
\t 
 
} 
 

 
//time 
 
function time(){ 
 
\t var time=document.getElementById("time"); 
 
\t for(x=30,x>=0,x--){ 
 
\t \t time.innerHTML("Time:"+x); 
 
\t } 
 
}
<!DOCTYPE HTML> \t 
 
<html> 
 
\t <head> 
 
\t \t <title>PICK 'EM ALL</title> 
 
\t \t <link rel="stylesheet" href="pta.css" type="text/css"> 
 
\t \t <script src="pta.js" type="text/javascript"></script> 
 
\t </head> 
 
\t <body> 
 
\t \t <div id="title_box"> 
 
\t \t \t <p id="title">PICK 'EM ALL</p> 
 
\t \t </div> 
 
\t \t <div id="start_box" onclick="start()"> 
 
\t \t \t <p id="start">START</p> 
 
\t \t </div> 
 
\t </body> 
 
</html>

+9

그것은 단지 오타의 세미콜론해야한다, 루프 함께 '대신';'에'; '를 사용하므로 스크립트 전체가 구문 분석되지 않고 정의 된 내용이 전혀 생성되지 않습니다. 'for (x = 30; x> 0; x -)'여기에는 다음과 같은 두 가지 중요한 교훈이 있습니다. 1. 웹 콘솔을 열면 무엇이 잘못되었는지를 알려줍니다. 2. 구문 오류로 인해 전체 스크립트가 폭파 될 수 있습니다. –

+3

당신의 코드도 [* The Horror of Implicit Globals *] (http://blog.niftysnippets.org/2008/03/horror-of-implicit-globals.html)에 떨어집니다 : 변수를 선언하십시오 ('x' 예를 들어'time'에서). –

+1

OP의 경우 Linting이 내장 된 좋은 편집기를 사용하는 것이 좋습니다. 그러면 이러한 오류가 즉시 발생합니다. – Keith

답변

-1

문제는 대신 쉼표

for(x=30;x>=0;x--){ 
     time.innerHTML("Time:"+x); 
    } 
+5

오타는 답변이 필요없고 댓글 (이미 완료했습니다)과 가까운 투표가 필요하지 않습니다. –

관련 문제