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

来源:5-1 编程挑战

慕仙5237505

2017-10-31 10:43

问题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里每个里面都有设置背景颜色,要循环一遍,能有更好的办法优化吗?谢谢回答

写回答 关注

2回答

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

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

    慕仙5237... 回复qq_会长大...

    好的,非常感谢,貌似懂了

    2017-11-03 14:55:51

    共 3 条回复 >

  • qq_会长大的幸福_4
    2017-11-02 15:58:21
    1.     as取到的是一个数组,给一个数组添加背景色是行不通的

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

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

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

    4. 优化部分

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

    慕仙5237...

    你帮我看看这个1: as.style.backgroundColor="#fff"; 标题1这样写统一设置为啥不行? // 2* for(var i=0; i<as.length; i++){ // as[i].style.backgroundColor="#fff"; // }标题2这样写又可以了,为啥一定要循环呢

    2017-11-03 11:11:00

    共 1 条回复 >

DOM事件探秘

DOM事件?本课程会通过实例来给小伙伴们讲解如何使用这些事件

99546 学习 · 1197 问题

查看课程

相似问题