• javascript作用域问题


    为某个节点下注册事件常犯错误纠正:

    View Code
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>


    <style type="text/css">
    ul li{100px; height:20px; background: #CCC; border: solid 1px black;};
    </style>
    <script language="javascript" >
    /*
    IE和firfox childNodes属性的区别
    也把一个标签的结束符“>”到下一个标签的起始符“<”之间的内容
    (除注释外,包括任何的文字、空格、回车、制表符)也算是一个节点了。
    而且这种节点也有它们自己独特的属性和值--nodeName="#text"。
    */
    window.onload=function(){
    var nodes=document.getElementById("a").childNodes;
    alert(nodes.length);
    for(var i=0;i<nodes.length;i++){
    /*
    调用这个nu这个方法,变量的值只在这个函数的作用域里面
    */
    nu(nodes[i],i+1);
    /*
    如果像如下这么做的话那么每点击一个几点的时候返回的值是nodes.length,而不是我们期望的值。
    这里存在一个作用域的问题;因为当点击某个节点的时候才会执行相应的方法,但是此方法是得到循环完过后的值的。
    也就是说这里的i的值并没有被销毁
    nodes[i].onclick=function(){
    alert(i);
    }
    */
    }
    }

    function nu(node,i){
    node.onclick=function(){
    alert(i);
    }
    }

    </script>

    </head>

    <body>

    <ul id="a">
    <li></li>
    <li></li>
    <li></li>
    <li></li>
    </ul>
    </body>
    </html>



  • 相关阅读:
    java中Logger.getLogger(Test.class),即log4日志的使用
    System.getProperty()方法大全 (转载)
    常用MySQL函数
    MYSQL常用命令(转载)
    Oracle中与日期时间有关的运算函数
    R
    珍惜现在,感恩生活 多重背包
    Piggy-Bank 完全背包
    骨骼收集器01背包
    D
  • 原文地址:https://www.cnblogs.com/unbreakable/p/2437258.html
Copyright © 2020-2023  润新知