不用len,直接用oLi.length,为什么不行?

来源:10-1 编程挑战

Fstar

2016-02-25 18:10

我发现不用len,直接用oLi.length的时候,循环只执行一次,循环完后oLi.length=0,这是为什么呢?

 for(var i=0,len=oLis.length;i<len;i++){        

            oLis[i].index=i;

            oLis[i].onclick=function(){



写回答 关注

2回答

  • crazycss
    2016-03-03 21:40:58

    len=oLis.length就是计算出总共选项卡有几个,一个<li>就包含一个有内容的<div>——也就是房源的信息;

    参考代码的思路就是用一个for循环先把所有<li>的className设为空,把二级的<div>设为“hide”,然后再将选中的<li>也就是用oLis[i].onclick将其className设为“on”即样式变为选中,用oLis[i].index获得选中oLis的序号,将序号相同的<div>的className改为“”即显示内容

  • ConradW
    2016-02-25 21:39:32

    1、len = oLis.length的作用?

    因为循环体里需要用到oLis.length,循环条件里也用到了它,所以放到一个变量里,方便使用。

    2、循环完后oLi.length=0,为什么?

    代码不全,不发定位原因。猜测是循环过程中对oLi做了影响其length的操作。


    Fstar

    那是什么操作?就是不懂为什么用了 oLis.length这个玩意会改变。

    2016-02-26 12:04:02

    共 1 条回复 >

JavaScript进阶篇

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

468060 学习 · 21891 问题

查看课程

相似问题