zoukankan      html  css  js  c++  java
  • javascript两个循环里的i,很容易忽略

    很简单的一段代码,但是却让我调试很久,现象是,第一个循环只执行了一次,但是节点的数量肯定不止一个,
    每次都是执行了一次,然后我怀疑循环2,是否执行完就退出,或者死循环(递归)了,经调试还是没发现.

    后来把第二个循环的i改成j问题解决了,也想起了一条规定,javascript里不加var定义的变量是全局的变量

    i作为全局变量在循环2里就改变了值,到了循环1就不执行了

    加上var也可解决,

    小问题但是,很容易忽略,另外就是在递归时调用自身方法时,i的值还是原来的没有改变,

    不过这种遍历的方法似乎有点落伍了,应该有更好方法,进一步学习中.........

    function showElement()
    {
        for (i=0; i < document.documentElement.children.length; i++)//循环1
        {
            var node = document.documentElement.children[i];
            alert(node.nodeName);
          
           if (node.hasChildNodes())
           {
            showAll(node);
           }
        }

    }

    function showAll(node)
    {
        for (i=0; i < node.childNodes.length; i++)//循环2
        {
            alert(node.childNodes[i].nodeName);
            if (node.childNodes[i].hasChildNodes())
           {
                showAll(node.childeNodes[i]);//递归
           } 
        }
        //alert("dsagd");
    }

  • 相关阅读:
    yjh_study_command
    installed_oracle_can't_use
    Database 2 Day DBA guide_Chapter3
    oracle_great_integration_译文
    oracle_set_autocommit
    Database 2 Day DBA guide_Chapter2
    linux_base_commond_two
    linux_base_commond_one
    Oracle_11gR2_概念_第06章_数据字典和动态性能视图_英文词汇
    angular 自定义select选项,tab切换!!!
  • 原文地址:https://www.cnblogs.com/shenba/p/777422.html
Copyright © 2011-2022 走看看