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

关于index 和重复for循环的代替问题还有背景设置能不能统一?下有完整截图(灰色框)

问题1* 错误写法: as.style.backgroundColor="#fff";  这样统一把a标签设置背景颜色为啥不行?这样写又有效果好奇怪 for(var i=0; i<as.length; i++){
            as[i].style.backgroundColor="#fff";
              }
  问2: title.innerHTML = as[index].innerHTML;  里as[index]呆表什么?没看见申明为啥也有效果

问3:keyup事件的38 , 40,13里每个里面都有设置背景颜色,要循环一遍,能有更好的办法优化吗?谢谢回答

提问者:慕仙5237505 2017-10-31 10:43

个回答

  • qq_会长大的幸福_4
    2017-11-03 11:22:55
    已采纳

    as是个数组,也就是对象,不能确定到具体元素上,给一个对象设置背景色显然是不成立的,而as[i]已经具体到了某个变量,这个变量所表示的就是某个具体的元素,给某个元素设置背景色是合理的

  • qq_会长大的幸福_4
    2017-11-02 15:58:21

    1.     as取到的是一个数组,给一个数组添加背景色是行不通的

      而as[i]代表的确实具体的元素,这样自然就可以加上背景色了

    2.     index在这里带表的是索引,按下键盘上下会随之进行减加;也就代表了所选中的li,在代码中也有声明,在最开始的地方

    3.     循环的部分可以封装起来,用的时候只需要调用就好了

    4. 优化部分

           个人认为在设置背景颜色时可以在css中设置一个激活状态的样式,当某个li被激活(也就是处于被选中状态)的时候添加这个激活状态样式的class,然后在每次执行键盘上下键之前清空所有li的class就好了,这样就不会显得麻烦每次都要设置背景颜色