零基础学前端的第64天,今天说一说js中的for循环,也是自己刚刚学到的知识。
话不多说,直接上内容。
假设我要给一排相同的盒子,都加一个点击事件该怎么做呢?
首先先获取到这些div盒子。
当我们拿到这些盒子的控制权后,接下来给它添加事件。
因为有很多盒子,按顺序抓取序号是从0开始。为什么是0???,因为在计算机中,假如是五个盒子排列,它是从零开始排。0,1,2,3,4,用01234的顺序来表示12345个盒子。所以抓取顺序要从零开始。
但是这么写,你会发现,有很多重复的代码,只有哪里不同?只有抓取的序号不同,所以我们可以用for循环写。
这行代码的i=0指的是,计次变量。i<10,指的是比较条件。i++,指的是递增每次增加一个。
因为我写了十个盒子,所以比较条件我写了i<10,表示当前十个盒子都具有点击的效果。如果我只让前五个有效果呢?那就是i<5。这个就代表只有前五个盒子有效果。
那么问题来了,为什么这么写,就表示有多少个盒子具有点击效果?
我们来分析一下。
代码是从上往下解析的,当解析到for循环这的时候,它会判断。
我需要让第一个盒子具有点击效果,它的抓取序号为0,也就是到了i=0这一步。一对比,条件符合,那么继续进行下一步。下一步是什么?是比较条件。比较条件为i<10。一对比,抓取序号0,小于抓取序号10。ok,这第一个盒子抓取序号为0,通过。
接下来到了i++这一步,通过了我就加一。此时需要判断的是抓取序号为1,那么继续比较,小于10通过,好,这个结果留下,表示前两个盒子都可以有事件发生,只是还没写具体的事件。
通过以后,再加一,抓取序号为2,小于10吗?小于10,通过,再加一。直到抓取序号为10,那么小于10吗?不小于,不满足条件,那么循环到此结束。
现在这十个盒子都具有了添加事件的功能,那么我们直接加事件就OK了。
添加之后,这十个盒子就都具备了点击效果。
那么这里关于i<10这里呢,有的时候你可能写了好多盒子,我又不想去查数量,怎么办?那就直接把数改成div.length。也就是i
那么到这里呢,看似本期内容要结束了。
这时候,万恶的老板过来了,那个你,再改一改。我不想要第三个具有点击效果,其它正常。那么怎么做?
这时候就需要if上场了。
if(i===3){continue}
这行代码的意思就是,如果抓取序号为五,那么就不要这个,其它的继续。
好了,到了老板那里,我跟老板说改好了,老板看了下效果,思考了一下。
对我说。
这个,我觉得这样改不好,这样,我换个效果。第三个以后的盒子,包括第三个,都不要点击的效果了。辛苦一下,改一改。
那么......怎么改呢?
很简单,改个单词的事。把continue,改成break。这样,第三个和它后面的盒子就都没有效果了。
好了,这期的内容到此结束,我们下期再见,拜拜。
PS:整篇内容都搞完了,我才发现了一处问题。那个图片中的getElementByTagName少了一个字母。因为是好多个div,所以还要加个S代表好多,正确写法为:getElementsByTagName。问题不大,问题不大......谁都有......第一次............