2013-05-15 2 views
0

У меня есть базовый JavaScript, с которым я работаю. Он отлично работает на моем локальном хосте, вызывая ошибку при реализации в Интернете. Я получаю следующую ошибку в инструментах dev с помощью firefox или crome.Javascript, переменная null - не может вызвать метод getElementsByTagName из null

Uncaught TypeError: Невозможно вызвать метод 'getElementsByTagName' из null.

Любая помощь очень ценится. Thanks

<!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

Это весь код? Я не понимаю, почему это работает на локальном хосте и не обслуживается в другом месте. У вас нет проблемы с кешем (пустой)? –

+2

Должно работать нормально, если вы не поместили javascript во внешний файл или в голову, выполнив его до того, как будет # элемент элемента? – adeneo

+1

Он работает в [скрипке] (http://jsfiddle.net/gVvp6/). – nnnnnn

ответ

0

Приведенный выше код выглядит хорошо. ошибок нет. Единственное возможное условие, при котором это невозможно, заключается в том, что вы, возможно, забыли изменить исходное имя, которое вы используете в своем проекте, с этим демо-идентификатором i.e main.

Это действительно сложно сказать. Проверьте, выполнив следующие действия:

  • изменить имя переменной i.e insert.
  • сохранить javascript в тегах сценария, например <script></script>.
  • или могут быть скрытые символы.

Вы прилагаете тэг html с крышками i.e HTML. Полагаю, это может быть проблемой.

+0

Я знаю, спасибо за все входные данные - это своего рода голова. Двойной проверял все. Очищенный кеш. Идентификатор main используется в моем проекте, поэтому все вокруг было основано, поэтому я могу просто скопировать и вставить прямо из своего тестового кода. – fidev

+0

Я просто использовал следующее, которое отлично работало. 'var insert = document.getElementsByTagName (" li "); Вставить [1] .style.borderRight = "1px solid blue"; ' – fidev

+0

@keyaspects Работает ли он сейчас? –