为了账号安全,请及时绑定邮箱和手机立即绑定

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

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 回答

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

2 回复 有任何疑惑可以回复我~
#1

阿皎就是茕兔丶 提问者

好像明白点,如果把定义全局变量x放在函数之前感觉就好理解很多了,谢谢回答
2016-07-10 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468062    人
  • 解答问题       21891    个

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

进入课程

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信