Создание переменной javascript из массива элементов - PullRequest
0 голосов
/ 10 ноября 2011
document.getElementsByTagName('div') 

возвращает массив элементов.

document.getElementsByTagName('div')[0]

возвращает один элемент.

, но по какой-то причине

var firstDiv = document.getElementsByTagName('div')[0] 

возвращает значение undefined,Как ни странно, глобальные переменные, похоже, не имеют этой проблемы.

firstDiv = document.getElementsByTagName('div')[0]

возвращает элемент.

Ответы [ 2 ]

2 голосов
/ 10 ноября 2011

Мои экстрасенсорные способности сообщают мне, что ваш код работает до того, как браузер проанализирует тело.

Переместите блок <script> в конец страницы.

1 голос
/ 10 ноября 2011

Виновато ключевое слово var. Обратите внимание, что это

var x = ...

является переменной декларацией , тогда как эта

x = ...

является выражением выражения . Выражение выражения возвращает значение. Декларации нет. Объявление, которое содержит инициализацию с некоторым выражением, инициализирует переменную, но значение инициализатора не становится значением объявления (поскольку объявления не имеют значения).

Все эти «возвраты» не определены:

var a = document.getElementsByTagName('div') 
var b = document.getElementsByTagName('div')[0]

Все они возвращают что-то (массив div или первый div):

document.getElementsByTagName('div') 
document.getElementsByTagName('div')[0]
a = document.getElementsByTagName('div')
b = document.getElementsByTagName('div')[0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...