zoukankan      html  css  js  c++  java
  • 数组循环输出最后一个的问题

    <body>
        <ul id="ul">
            <li>1111</li>
            <li>2222</li>
            <li>3333</li>
            <li>4444</li>
            <li>5555</li>
        </ul>
        
        <script type="text/javascript">
            var oUl = document.getElementById("ul");
            var aLi = oUl.getElementsByTagName("li");
            for(var i = 0; i < aLi.length; i++){  
                        aLi[i].onclick = function (){  
                            alert(i);  
                        };
                    }  
        </script>
    </body>

    1原因是:for(var i=0) 等于 var i;for(i = 0; i < aLi.length; i++)

           这时候 alert(i) 里面的i还没有值,当用户调用 onclick 的匿名函数时,需要对i求值

      解析程序首先会在事件处理程序内部查找,但 i 没有定义。然后,又到方法外部去查找,此时有定义,但此时的i已经循环完毕,因此,无论点哪个标签,弹出的都是最后一个标签的index。

  • 相关阅读:
    java面向对象基础
    java重载方法、重写方法
    java数据类型
    Java简介
    随机读写,块读写
    Java基本常识

    循环双向链表
    双向链表(链表)
    循环单链表(链表)
  • 原文地址:https://www.cnblogs.com/huancheng/p/8483967.html
Copyright © 2011-2022 走看看