繁体   English   中英

为什么这个变量不是通过闭包定义的?

[英]Why isn't this variable defined through closure?

我有一个简单的 JS 代码,如下所示。 当我单击h2元素时,我收到一个参考错误, h2Elements is not definedconsole.log('h2Elements', h2Elements) console.log('faqs', faqs)工作正常时, console.log('faqs', faqs) console.log('h2Elements', h2Elements)

不宜h2Elements等定义faqs是通过关闭?

<!DOCTYPE html>
<html lang="en">
<body>
    <main id="faqs">
        <h2><a href="#" >What is JavaScript?</a></h2>
        <div>
            <p>JavaScript is a programming language that's built into the major web browsers.
            </p>
        </div>
    </main>
    <script>
      var toggle = function() {
        console.log('faqs', faqs)
        console.log('h2Elements', h2Elements)
      };

      window.onload = function() {
          var faqs = document.getElementById("faqs");
          var h2Elements = faqs.getElementsByTagName("h2");

          for (var i = 0; i < h2Elements.length; i++ ) {
            h2Elements[i].onclick = toggle;
          }
      };
    </script>
</body>
</html>

faqs 和 h2Elements 不在切换功能的范围内。 切换函数内的 faqs 变量正在给出输出,因为 'faqs' 是某个 DOM 元素的 id。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM