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