关于while不明白的同学可以看看!
看好多同学有疑问。解析下这个代码:
while (x && x.nodeType!=1){
x=x.nextSibling;
}
return x;
}
首先,这个判定是在函数内部。函数的参数是n,n的值是在定义y的时候传给它的。即n=document.getElementsByTagName("li")[0]也就是所有li元素的第一个li。 传进来之后呢? 通过函数进行处理之后赋值给y。 函数怎么处理的呢?首先n被传入,函数内部定义x=n.nextSibling。这里就是第一个li元素后面的元素赋值给x。然后开始判断x是否等于1。不等于1呢?x=x.nextSibling; 不等于1就意味着后面的换行符被当作空白的节点那么这个节点后面的节点就是我们想要的。所以x=x.nextSibling,就是自身后面的节点赋值给自己。此时x就是这个空节点后面的兄弟节点。也就是第二个li元素。 如果等于1呢?x=n.nextSibling n是被传入第一个li元素节点了,那么n.nextSibling就是第一个li后面的兄弟元素(第二个li元素),并赋值给自己,此刻x等于它自身后面的兄弟元素。