我的理解和疑惑,加了点注释

来源:9-11 访问兄弟节点

阿皎就是茕兔丶

2016-07-08 18:32

function get_nextSibling(n){//n为假定的一个初始节点,形参

        var x=n.nextSibling;//x为假定节点n的下一个节点,形参

        while (x && x.nodeType!=1){//如果下一个节点(即x)不是元素节点

            x=x.nextSibling;//就把x变成当前节点(作用相当于n),继续循环验证

        }

        return x;//是元素节点,则返回形参x

    }


    var x=document.getElementsByTagName("li")[0];//x被赋值为实参,这里的赋值应该与函数内的x无关

    var y=get_nextSibling(x);//调用函数来找出y是x的下一个元素节点    

    if(y!=null){//验证y是否为最后一个元素节点

    不知道对不对,但不懂的还是n为什么会被假定为节点,是因为.nextSibling属性而被当作一个节点吗

写回答 关注

1回答

  • Twinkle3
    2016-07-09 17:42:56
    已采纳

    n就只是一个形参,因为调用函数的时候get_nextSibling(x),已经把x(全局)这个变量传递进来了,就相当于n就是这个x(全局),而这个x(全局)又是你找到的li元素节点。这个全局的x和你写在函数get_nextSibling()的x(局部)变量没有直接的关系。所以我建议你要是搞不清楚,你可以把x(局部)改成其它的变量名,比如x1,x2,z1等等其它的。不知道你是不是想问的是这个?哦,对了,函数内的形参n我建议你直接把它看作全局的x,这样应该好理解一些!

    阿皎就是茕兔...

    好像明白点,如果把定义全局变量x放在函数之前感觉就好理解很多了,谢谢回答

    2016-07-10 11:40:55

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468061 学习 · 21891 问题

查看课程

相似问题