2012-02-05 6 views
-3

이 함수에서 전역 변수가 인식되지 않는 이유는 무엇입니까?글로벌 및 로컬 javascript 범위

<script type="text/javascript"> 
var id_f = document.getElementById('f'); 

function foo() 
{ 
id_f.innerHTML=("text"); 
} 
</script> 
+0

당신은 잘못입니다. 그것은 인정된다. – akonsu

+0

정확히 작동하지 않는 것은 무엇입니까? – user1096188

+0

당신의 HTML 코드에서 어디에 놓았습니까? 그리고 어떤 브라우저로 테스트하고 있습니까? – skyburner

답변

3

.getElementById() 기능은 일치하는 요소가 오류하지 않은, 발견되지 않으면 null 반환하지만 id_f 변수가 null의 경우에 .innerHTML 속성이 없습니다 그 오류를 줄 것이다.

페이지 소스에 일치하는 요소가 있어도 스크립트가 실행되지 않으면 요소가 실제로 구문 분석되지 않으면 해당 요소가 발견되지 않습니다. 따라서 스크립트는 소스의 요소 다음 (예 : </body> 태그가 닫히기 직전)에 있어야하거나 onload 또는 document.ready 유형 핸들러를 추가하고 거기에서 코드를 실행해야합니다.

(당신은 함수의 시작 부분에 console.log(id_f) 또는 alert(id_f)를 추가하면 무엇을 얻을 수 있습니까?)

+0

감사합니다. 그것은 정확히 문제였습니다. 나는 자바 스크립트로 작업하기 시작 했으므로 답을 고맙게 여기지 않고 감사하게 생각한다. – T110