2016-01-04 4 views
1

Кажется, это должно быть довольно простым, и я не могу понять, почему он не работает. У меня есть супер простой страницы до сих пор, и я хочу, чтобы выбрать пункты с JS:Почему «getElementsByTagName» не находит ничего?

Вот мой HTML:

<!DOCTYPE html> 
<html> 
    <head> 
    <script src="misc.js" type="text/javascript"></script> 
    </head> 
    <body> 
    <p id="first">Just one paragraph.</p> 
    <p id="second">Two, actually.</p> 
    </body> 
</html> 

И мои JS:

var paras = document.getElementsByTagName('p'); 
console.log(paras.length); 

Я ожидаю консоли журнал в показать 2 но я смотрю 0. Я довольно хорошо читаю the documentation, и я не могу понять, что я здесь делаю неправильно.

+0

Кажется хорошо работать в этой скрипке https://jsfiddle.net/0xjhznta/2/ –

ответ

5

В то время, когда вы запускаете сценарий, в документе нет абзацев.

Либо переместите элемент сценария так, чтобы он появился после абзацев, либо поместил код в функцию, а затем вызвал эту функцию позже (например, когда срабатывает event).

+0

Браузер анализирует вашу html-страницу и находит ваш скрипт до того, как элемент html начнет разбираться. Чтобы избежать этого, вы можете поместить тег сценария в нижней части тега '' или выполнить свой код JavaScript после загрузки DOM. 'document.addEventListener ('DOMContentLoaded', function() { // код })' –

+0

Я чувствую себя наркотиком, но ... duh. Благодарю. – Amanda

Смежные вопросы