while (x && x.nodeType!=1){
x=x.nextSibling;
}
x.nodeType我能理解,就是判断后面的节点是否为元素节点,但是为什么前面还要加一个x!=1的判断呢?在这里返回的x是函数还是什么东西?
x是节点, x&&x.ondeType!= 1 表示不是空 并且节点类型不是1
因为开始时var x=document.getElementsByTagName("li")[0];,即x为li的第一个节点,然后调用getElementsByTagName(x)这个函数,把x的值传进去,这个函数里x的值又发生了改变var x=n.nextSibling;,x因为n.nextSibling而指向了下一个节点,而下一个节点的类型是不知道的,所以要对x进行判断。说的不太好,希望能理解~