为了账号安全,请及时绑定邮箱和手机立即绑定

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

正在回答

2 回答

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

0 回复 有任何疑惑可以回复我~
#1

慕仙5237505 提问者

哦,问题是1:我没有把它转成数组,哪里代表他是数组了呢? 2:if(evt.keyCode==13){ //title.indexHTML = this.innerHTML; 这里为啥不能用this呢?
2017-11-03 回复 有任何疑惑可以回复我~
#2

qq_会长大的幸福_4 回复 慕仙5237505 提问者

1. 你的as使用ElementsByTagName取到了,这块取到的直接就是个数组 2.this一般都用在事件中,所指代的是出发事件的元素,你这里写在if语句中,最外面的出发事件是document,所以this指代的是document 还有你下边也有一处用了this,那个是正确的,因为触发事件就是个元素,你可以想想为什么下边那个是成功的
2017-11-03 回复 有任何疑惑可以回复我~
#3

慕仙5237505 提问者 回复 qq_会长大的幸福_4

好的,非常感谢,貌似懂了
2017-11-03 回复 有任何疑惑可以回复我~
  1.     as取到的是一个数组,给一个数组添加背景色是行不通的

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

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

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

  4. 优化部分

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

0 回复 有任何疑惑可以回复我~
#1

慕仙5237505 提问者

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

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信