问题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里每个里面都有设置背景颜色,要循环一遍,能有更好的办法优化吗?谢谢回答
as是个数组,也就是对象,不能确定到具体元素上,给一个对象设置背景色显然是不成立的,而as[i]已经具体到了某个变量,这个变量所表示的就是某个具体的元素,给某个元素设置背景色是合理的
as取到的是一个数组,给一个数组添加背景色是行不通的
而as[i]代表的确实具体的元素,这样自然就可以加上背景色了
index在这里带表的是索引,按下键盘上下会随之进行减加;也就代表了所选中的li,在代码中也有声明,在最开始的地方
循环的部分可以封装起来,用的时候只需要调用就好了
优化部分
个人认为在设置背景颜色时可以在css中设置一个激活状态的样式,当某个li被激活(也就是处于被选中状态)的时候添加这个激活状态样式的class,然后在每次执行键盘上下键之前清空所有li的class就好了,这样就不会显得麻烦每次都要设置背景颜色