问答详情
源自:9-11 访问兄弟节点

js中previousSibling访问兄弟节点。while判断nodeType是否为1

x&&x.nodeType!=1 这里为什么要加上x&& 不加的话,下面的代码就不运行了。但是教程左边的例子就没有加。 求解释。。

提问者:十二月晴朗 2016-06-12 13:43

个回答

  • 工程师008
    2016-06-12 17:18:47
    已采纳

    首先判断x是否为空,如果x为空的话 x.nodeType 调用就会异常。这应该编译器的保护机制

  • godmaple
    2016-06-12 20:21:03

    如果你是IE可以不加因为IE不存在null节点  如果是Firefox等就有null节点

  • qq_独帆舟_03148997
    2016-06-12 17:22:47

    浏览器问题,ie会将兄弟元素间的空白文本自动忽略,这就可以不加,兄弟节点之间的换行或空格都算空白文本。其他的浏览器如果不会忽略空白文本那就要先判断x是否是空白文本再判断类型,要不判断那上一个或下一个兄弟节点有可能会是空白文本,返回的就是空白文本的值,也就是空,那就不是我们想要的li里的值了。