从元素数组创建javascript变量

时间:2011-11-09 23:53:36

标签: javascript dom

document.getElementsByTagName('div') 

返回一个元素数组。

document.getElementsByTagName('div')[0]

返回单个元素。

但出于某种原因,

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

返回'undefined'。奇怪的是,全局变量似乎没有这个问题。

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

返回一个元素。

2 个答案:

答案 0 :(得分:2)

我的通灵能力告诉我你的代码在浏览器解析正文之前就已经运行了。

<script>块移动到页面底部。

答案 1 :(得分:1)

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]
相关问题