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

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

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属性而被当作一个节点吗

提问者:阿皎就是茕兔丶 2016-07-08 18:32

个回答

  • 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,这样应该好理解一些!