问答详情
源自:1-5 编程练习

球大神帮我看看,哪里出错了,为什么不对。。。

window.onload=function(){

      // 将所有点击的标题和要显示隐藏的列表取出来

    var menu=document.getElementById("menu");

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

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

     // 遍历所有要点击的标题且给它们添加索引及绑定事件

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


        ps[i].onclick=function(){

            if(uls[this.id].style.display=="block"){

                uls[this.id].style.display="none";

            }else{

                uls[this.id].style.display="block";

            }

           

        }  

    }


提问者:xvvg 2015-11-20 20:48

个回答

  • 李晓健
    2015-11-20 21:01:49
    已采纳

    没有页面结构,不知道具体什么总是,不过你的js代码倒是有一个问题,就是最后少了一个 } 

  • qq_飞扬_13
    2016-06-11 17:58:13

    你不加ps[i].id=i;证明ps[i].id还不存在 你直接在方法中调用肯定是不行的


  • qq_飞扬_13
    2016-06-11 17:56:33

    这关系到i的做作用域的问题  在点击或者划过等事件中不能直接引用i 如果for循环中你定义的i<5 那么你在划过或者点击事件中引用的i直接是5具体的你搜索下变量作用域就能知道的

  • xvvg
    2015-11-21 21:03:38

    我加了一个ps[i].id=i,就出来了,我不太懂为什么加这个,帮我分析分析吧,谢谢了