2013-05-15 2 views
0

일부 근본적인 JavaScript가 있습니다. 그것은 내 localhost에서 웹에서 구현 될 때 오류를 throw하여 정상적으로 작동합니다. firefox 또는 crome을 사용하는 dev 도구에서 다음 오류가 발생합니다.Javascript, 변수가 null입니다. null의 getElementsByTagName 메소드를 호출 할 수 없습니다.

잡히지 않은 TypeError : null의 'getElementsByTagName'메서드를 호출 할 수 없습니다.

도움을 주시면 감사하겠습니다. 감사합니다

<!DOCTYPE html> 
<html> 

    <head> 
     <title>Title</title> 
     <style type="text/css"> 
      body { 
       background-color: beige; 
       margin: 0; 
      } 
      #main li { 
       width: 100px; 
       padding: 5px 0; 
      } 
     </style> 
    </head> 

    <body> 
     <div id="main"> 
      <ul> 
       <li>A list item</li> 
       <li>B list item</li> 
       <li>C list item</li> 
      </ul> 
     </div> 
     <script type="text/javascript"> 
      var insert = document.getElementById("main"); 
      insert.getElementsByTagName("li")[1].style.borderRight = "1px solid blue"; 
     </script> 
    </body> 

</HTML> 
+1

전체 코드입니까? localhost에서 작동하고 다른 곳에서 제공되지 않는 이유는 알 수 없습니다. 캐시 문제가 있습니까 (비워 두지 마십시오)? –

+2

#main 요소를 사용하기 전에 javascript를 외부 파일이나 머리에 넣지 않으면 실행하면됩니다. – adeneo

+1

[피들] (http://jsfiddle.net/gVvp6/)에서 작동합니다. – nnnnnn

답변

0

위의 코드는 좋아 보인다. 오류가 없습니다. 이것이 작동하지 않는 유일한 조건은이 데모 ID로 프로젝트에서 사용중인 원래 ID 이름을 변경하는 것을 잊어 버린 것일 수 있습니다. 즉 main입니다.

정말 말하기 어렵습니다. 다음을 수행하여 확인하십시오.

  • 변경 변수 이름 예 : insert.
  • <script></script>과 같은 스크립트 태그에 자바 스크립트를 보관하십시오.
  • 또는 숨겨진 문자가있을 수 있습니다.

html 태그를 뚜껑으로 묶습니다. 즉 HTML입니다. 나는 이것이 문제일지도 모른다라고 생각한다.

+0

모든 입력에 감사드립니다. 캐시를 지 웠습니다. 메인 프로젝트의 ID는 내 프로젝트에서 사용되므로 모든 것을 기반으로하므로 테스트 코드에서 직접 복사하여 붙여 넣을 수 있습니다. – fidev

+0

방금 ​​대신 다음을 사용했습니다. 'var insert = document.getElementsByTagName ("li"); insert [1] .style.borderRight = "1px solid blue"; ' – fidev

+0

@keyaspects 지금 작동합니까? –

관련 문제