x&&x.nodeType!=1 这里为什么要加上x&& 不加的话,下面的代码就不运行了。但是教程左边的例子就没有加。 求解释。。
首先判断x是否为空,如果x为空的话 x.nodeType 调用就会异常。这应该编译器的保护机制
如果你是IE可以不加因为IE不存在null节点 如果是Firefox等就有null节点
浏览器问题,ie会将兄弟元素间的空白文本自动忽略,这就可以不加,兄弟节点之间的换行或空格都算空白文本。其他的浏览器如果不会忽略空白文本那就要先判断x是否是空白文本再判断类型,要不判断那上一个或下一个兄弟节点有可能会是空白文本,返回的就是空白文本的值,也就是空,那就不是我们想要的li里的值了。