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

变量作用域

for(var i=0; i<titles.length; i++){
            titles[i].id = i;
            titles[i].onclick = function(){
                var _i = this.id;
                //alert(uls[_i].innerHTML);
                // 判断该列表,如果是显示的则将其隐藏,如果是隐藏的则将其显示出来
                if(uls[_i].style.display == "none"){
                    for(var j=0; j<titles.length; j++){
                        uls[j].style.display = "none";
                    }
                    uls[_i].style.display = "block";
                } else {
                    uls[_i].style.display = "none";
                }
                
                
            }
        }

想把for循环中的i传到onclick绑定的函数中,还有什么方法?

for(var i=0; i<titles.length; i++){
            var _i = i;
            titles[i].onclick = function(){
                //var _i = this.id;
                //alert(uls[_i].innerHTML);
                // 判断该列表,如果是显示的则将其隐藏,如果是隐藏的则将其显示出来
                if(uls[_i].style.display == "none"){
                    for(var j=0; j<titles.length; j++){
                        uls[j].style.display = "none";
                    }
                    uls[_i].style.display = "block";
                } else {
                    uls[_i].style.display = "none";
                }
                
                
            }
        }

像上面这样,为什么_i也是传不进去

正在回答

1 回答

 titles[i].id = i;的作用是给li标签添加“id”属性的,该属性是唯一的,只有指定(即点击)了特定的id,才会显示高亮。

var _i = i 只是缓存一个变量没有实际意义。

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

举报

0/150
提交
取消

变量作用域

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