【问题标题】:Chrome console.log(elementID) outputs the element in the consoleChrome console.log(elementID) 输出控制台中的元素
【发布时间】:2013-11-23 23:26:47
【问题描述】:
<input type="text" placeholder="Password" id="password" name="password" />
<script>
    console.log(password);
</script>

上面的代码在控制台中输出如下:

<input type="text" placeholder="Password" id="password" name="password">

当我输出变量 password 并注意到 HTML 已添加时,我注意到了这一点。这是正常的行为吗?在这种情况下,getElementById 有什么用?

【问题讨论】:

    标签: javascript google-chrome-devtools


    【解决方案1】:

    使用window[element id]window[element name] 获取元素是standard behavior 由所有现代浏览器since Firefox 14 实现的。我将向您推荐有关该主题的一些帖子。正如您在大多数有关此事的帖子中所发现的那样,不建议使用该行为,并且通常会因为浏览器优化 .getElementById 并检查变量是 id 还是名称是 lowest priority in global scope 而变慢。

    【讨论】:

      【解决方案2】:

      传统行为是将所有具有 ID(和名称,我认为)的元素定义为 window 的属性。因此,window.password(或只是password)理论上可以用作getElementById 的快捷方式。但是,一旦您定义了具有相同名称的变量,您就会得到不可预测的行为。

      这是全局变量不好的原因之一。始终使用 var 在本地定义变量。

      【讨论】:

      • 啊哈,我需要用var 定义它们,最近在PHP 中编程太多了! :)
      猜你喜欢
      • 2023-03-12
      • 2012-06-21
      • 2021-12-07
      • 2013-05-06
      • 2015-11-01
      • 2012-07-27
      • 2016-01-11
      • 2011-03-15
      • 2012-10-12
      相关资源
      最近更新 更多