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

一些问题不明白

1在代码中所定义的函数中,为啥在while(x&&x.nodeType!=1)这样子进行判断,可以直接(x.nodeType!=0)不行吗?

2在条件中主要判断的是节点是否是元素节点,如果不是为啥要x=x.nextSibling;这样写

3.if(y!=null)主要是判断什么的?

正在回答

2 回答

  1. (x&&x.nodeType!=1)是条件x是否代表元素节点,不是元素节点就执行下面的代码跳到下一个兄弟节点,写(x.nodeType!=0)你这是条件x执行下面代码,所有节点都被跳过。

  2. 是为了跳过空白文本节点(换行符)

  3. 判断y是否为空,为空就是代表y的上一个(下一个)节点已经是最后一个(第一个)节点了。

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

1,可以(x.nodeType!=0),反正我试了很多次,(x.nodeType!=0)是可以的

2,如果不是元素节点的话那就有可能是文本注释什么的,在浏览器里是显示不出来的,按时在除了IE浏览器之外,这些也算一个节点,所以有必要跳过这些节点,x=x.nextSibling;的语句就是实现这些功能。

3主要判断是否为出元素节点以外的节点

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

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468189    人
  • 解答问题       21891    个

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

进入课程

一些问题不明白

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