zoukankan      html  css  js  c++  java
  • 又现Javascript同名变量引用混乱

              记得这个错误在之前研习Ajax时出现过,其实也相当注意了。就是在某函数FuncA体内声明某局部变量v,单独使用当然无事,但如果在声明v之后,在FuncA内又调用其他函数FuncB,且FuncB体内刚好有同名变量v被直接赋值,而未初始化过,问题就来了。这样会导致在FuncB内的v使用的是FuncA定义的那个v,当然对它的所有操作的效果,在结束函数FuncB后,体现在FuncA的变量v上面。事情就是这样。以后注意就是。
             今天的具体问题:一个递归算法,本来使用C#没事,就是走Javascript这条路,这个小问题,搞了我一晚上。惭愧!

     1function setChilds(id,state)
     2    {
     3        //通过当前节点获得他所有子节点
     4        var childs=document.getElementsByName("cb"+id);
     5        //遍历该节点所有子节点
     6        var index=0;
     7        for(index=0;index<childs.length;index++)
     8        {
     9            //设置此子节点状态
    10            var child=childs[index];
    11            child.checked=state;
    12            //二阶子节点集合
    13            var grandChilds=document.getElementsByName("cb"+child.id);
    14            
    15            if(grandChilds.length>0)
    16            {
    17                //该子节点仍有子节点,此子节点继续递归
    18                alert(child.id+" Looping:"+grandChilds.length);
    19                var cid=child.id;
    20                new setChilds(cid,state);
    21            }

    22        }

    23    }

    就是注意这段代码中的index
    如果没有第6行的 初始化变量index
    死也出不来效果。

    另外,发现一个问题,Javascript中的函数中 写 return和不写return好像是不同的。今后要弄清楚它们的区别。
  • 相关阅读:
    二货Mysql中设置字段的默认值问题
    Mongodb第一步资料
    时间时间
    嵌入式linux应用程序移植方法总结
    capwap DTSL 加密分析
    capwap协议重点分析
    一点论文写作心得
    live555+ffmpeg如何提取关键帧(I帧,P帧,B帧)
    “以图搜图”引擎及网站合集
    常见的希腊字母的读法
  • 原文地址:https://www.cnblogs.com/vincedotnet/p/821850.html
Copyright © 2011-2022 走看看