问答详情
源自:10-1 编程挑战

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

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

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

            oLis[i].index=i;

            oLis[i].onclick=function(){



提问者:Fstar 2016-02-25 18:10

个回答

  • 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的操作。