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

为什么这样写达不到效果?i的值传不到function内吗?

window.onload=function(){

var ps=document.getElementsByTagName("p");

var uls=document.getElementsByTagName("ul");

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

        ps[i].onclick=function(){

           if(uls[i].style.display=="none")

          { uls[i].style.display="block";}

           else{uls[i].style.display="none"; }

           }

        }         

      }


正在回答

4 回答

onclick这个是一个回调函数,回调函数里面的I值已经变为了ps.length;你可以像老师那样在外面保存i的值,或者利用闭包实现。

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

var ps=document.getElementsByTagName("p");

var uls=document.getElementsByTagName("ul");

加上

alert('ps.length');

alert('uls.length');

试试,如果没有数字显示,就在前面加上

function $(id) 

    {

        return typeof id ==='string'?document.getElementById(id):id;

    }

我就是遇到了这个问题。

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

传不到 , 此时的i已经是 ps.length-1  了;

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

举报

0/150
提交
取消

为什么这样写达不到效果?i的值传不到function内吗?

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