为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

正在回答

3 回答

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

0 回复 有任何疑惑可以回复我~
#1

十二月晴朗 提问者

非常感谢!
2016-06-13 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

十二月晴朗 提问者

明白了,谢谢
2016-06-13 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

十二月晴朗 提问者

谢谢回答
2016-06-13 回复 有任何疑惑可以回复我~
#2

小西瓜籽

nodeType!=1 是什么意思呀
2016-06-15 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信