【发布时间】:2020-05-25 13:09:15
【问题描述】:
我遇到了一个可行的情况,但我不明白为什么。如果我将一个元素命名为 id="abc" 并在没有先设置的情况下执行 console.log(abc),它会给我 HTML 对象。谁能解释这种行为?
例子
<h1 Id="abc" >abcdefghj</h1>
<script>
// without using document.getElementById
console.log(abc); // Returns h1 element
</script>
我不知道为什么它给了我整个元素而不使用 document.getElementById()。
【问题讨论】:
-
id属性在全局范围内定义。这就是为什么过度使用 id 不被视为最佳做法的原因 -
abc不是字符串。"abc"是。abc是一个标识符,会先在本地范围内查找,然后在全局范围内查找,最后在窗口对象中查找。
标签: javascript html