2013-06-27 4 views
2

다음 코드를 설정할 수 없습니다 특성 '클래스는'... 오류를 내가 앵커 태그의 클릭 이벤트에 의해 JS 함수 부문의 패스 ID를 시도하고 "Uncaught TypeError: Cannot set property 'className' of null"catch되지 않은 형식 오류 : 널 (null)

<style> 
     .deactive { height:250px; } 
     .active { height:150px; } 
    </style> 
    <script> 
     function click(div) { 
      document.getElementById('div').className = 'active'; 
     } 
    </script> 
    <a href="#" onclick="click(Division);"> 
     <div id="Division" class="deactive"> 
      <!--Division contents--> 
     </div> 
    </a> 

를 보여주고 내가 변경하려면 분단의 클래스 이름은 나 오류를 식별하는 데 도움이 .. 문서에서 당신은 id가 "div" 그래서 document.getElementById('div')null 인 요소가 존재하지 않기 때문에

답변

8

그 오류가 발생합니다.

현재 변경해야

onclick="click('division');" 

사용 인수 따옴표 및

여기
document.getElementById(div).className = 'active'; 

div 따옴표로 묶어야하지해야합니다, 당신은 전달 된 매개 변수를 사용하고 있기 때문에 때 기능 가 호출되었습니다.

(부수적으로 : 기능을 호출하지 마십시오. click)

fiddle

+1

div 여기서 따옴표로 묶지 않아야합니까 ?? 하지만 당신이 직접이 이드에게는 아무런 요소가 없다고하셨습니다. 그렇다면 왜 그것을 사용해야합니까? –

+1

함수 내부의'div'는 함수를 호출 할 때 값이 "division"인 변수입니다 ... https://developer.mozilla.org/en-US/docs/Web/에서보십시오. 자바 스크립트/안내/기능 – fcalderan

+0

고맙습니다. – chriz

관련 문제