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

来源:9-11 访问兄弟节点

十二月晴朗

2016-06-12 13:43

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

写回答 关注

3回答

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

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

    十二月晴朗

    非常感谢!

    2016-06-13 19:45:34

    共 1 条回复 >

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

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

    十二月晴朗

    明白了,谢谢

    2016-06-13 19:47:07

    共 1 条回复 >

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

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

    小西瓜籽

    nodeType!=1 是什么意思呀

    2016-06-15 16:34:48

    共 2 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468194 学习 · 21891 问题

查看课程

相似问题