问答详情
源自:9-11 访问兄弟节点

n是谁传得啊

搞不明白到底是谁给函数传了个参数n。。 求解答???

提问者:qq_仰望摩天轮_0 2015-08-18 08:54

个回答

  • 冬鬼
    2015-09-01 17:18:08
    已采纳

    ( return x;           返回x,之前说了用变量y来接收,)请问哪行代码表明明要用变量y接收?谢谢

  • qq_仰望摩天轮_0
    2015-08-18 09:20:07

    //先执行以下代码

        var x=document.getElementsByTagName("li")[0];       //x为     <li id="a">javascript</li> 

        document.write(x.nodeName);             //输出x的节点名称为LI

        document.write(" = ");

        document.write(x.innerHTML);                 //输出x的节点的值为javascript

        

        var y=get_nextSibling(x);                   //  将x传给函数,并且将返回后的值赋给变量y

      

    //函数接收参数后执行函数内的语句  

     function get_nextSibling(n){                       //n用来接收以上传来的x。所以n为 <li id="a">javascript</li> 

            var x=n.nextSibling;        //需要注意的是此时函数内定义的变量x与上面传来的x是完全不同的变量。(请了解全局变量和局部变量的不同),将n的下一个兄弟节点赋值给变量x。不进行是否有空白节点的考虑啦,我就认为    x为     <li id="b">jquery</li>

           while (x && x.nodeType!=1){   //这是为了浏览器兼容问题进行循环判定.目的是消除空白节点。找元素节点。

                x=x.nextSibling;

            }

            return x;           返回x,之前说了用变量y来接收

        }

        if(y!=null){               判断y是否是空的。如果不是,执行以下循环体

            document.write("<br />nextsibling: ");

            document.write(y.nodeName);

            document.write(" =");

            document.write(y.innerHTML);

        }else{           //如果y是空的,说明是最后一个节点,执行以下语句。

          document.write("<br>已经是最后一个节点");      

        }


  • qq_仰望摩天轮_0
    2015-08-18 09:01:34

    懂了  var y=get_nextSibling(x);    n是这么传得。太不仔细了,害我想好久