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

点击回车选取当前li内容给title

看到那段:

if(event.keyCode==13){

for(var i=0; i<as.length;i++){

 as[i].style.background = '#fff';

}

title.innerHTML = as[index].innerHTML;

menu.style.display = 'none';

我看了好久都不明白为什么要用as[index]就能选到当前所在的li项,按我的代码写法的话,index的值应该只有继承了开头声明的index=-1才对啊?

而如果我把as[index]改为as[i]放到for循环里面,无论我怎么选,最后都会选择li的最后一项,搞不懂。

请大神指点!

正在回答

1 回答

因为i在这里是一个局部变量,变量i只在for循环里面存在。而title.innerHTML = as[index].innerHTML;这一句代码是在for循环的外面,所以改为as[i]的话是找不到i这个变量的,也就无法定位选取li里的内容。

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

kelvinwong 提问者

这个我明白,我的意思是我假如改成as[i],然后放回循环里也是不行的。我主要的疑惑还是为什么要用as[index]就可以定位到当前选定的那项li
2016-03-25 回复 有任何疑惑可以回复我~
#2

慕仔7676644 回复 kelvinwong 提问者

我也是刚看没多久的,但我认为,这里的i的作用并不是准确指定某个选项的具体位置,而是我这个数组里有多少个元素的总数。index之所以能够指定位置是因为它本身的功能,index属性可返回下拉列表中选项的索引位置。这是我结合键盘事件那三代码重复看了几次得出的结论,虽然不知道对不对,但是我觉得这样的理解可以让我稍微清楚一些...
2016-03-25 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

点击回车选取当前li内容给title

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