从元素数组创建 JavaScript 变量

发布于 2024-12-14 14:18:02 字数 389 浏览 0 评论 0原文

document.getElementsByTagName('div') 

返回一个元素数组。

document.getElementsByTagName('div')[0]

返回单个元素。

但由于某种原因,

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

返回“未定义”。奇怪的是,全局变量似乎没有这个问题。

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

返回一个元素。

document.getElementsByTagName('div') 

returns an array of elements.

document.getElementsByTagName('div')[0]

returns a single element.

but for some reason,

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

returns 'undefined'. Strangely, global variables do not seem to have this problem.

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

returns an element.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一个人的夜不怕黑 2024-12-21 14:18:02

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

My psychic powers tell me that your code is running before the browser parses the body.

Move the <script> block to the bottom of the page.

枕花眠 2024-12-21 14:18:02

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]

The var keyword is to blame. Note that this

var x = ...

is a variable declaration while this

x = ...

is an expression statement. Expression statement returns a value. Declarations do not. Declaration which contains initialization with some expression initializes the variable, but the value of the initializer does not become the value of the declaration (since declarations do not have a value).

All of these "return" undefined:

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

All of these return something (an array of divs or the first div):

document.getElementsByTagName('div') 
document.getElementsByTagName('div')[0]
a = document.getElementsByTagName('div')
b = document.getElementsByTagName('div')[0]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文