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

关于while中的执行语句的问题

https://img1.sycdn.imooc.com//5d2183fd0001091803410126.jpg
这个x一开始被赋值为n这个节点紧接着的上一个节点,然后执行while语句,满足条件x再被赋值为x的前一个节点的值,那不就是n这个节点的前两个了么。有点不能理解。

正在回答

1 回答

程序的目标很明确,要获取并返回的x是一个实际的节点元素(比如<li>、<div>等标签),而不能是非IE浏览器(比如Firefox、Chrome)中获取的文本、注释等其他类型的元素。

所以循环条件是x.nodeType!=1。其中“1”代表的就是“标签元素”。如果返回的结果真的是一个标签元素的话,自然不满足条件,无法进入循环。

同理,循环条件中还有一个条件是x,等同于x!=null。这是因为如果已经是第一个元素了,它的前一个sibling是什么?在JS中用null作为返回值。也是同样的道理,如果x取值已经是null(没有再前面的sibling)则没必要循环了。

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

举报

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

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

进入课程

关于while中的执行语句的问题

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