问答详情
源自:10-1 编程挑战

代码快照,我这为什么javascript效果出不来 求大神帮我看看 , 找了一上午了 不知道问题出哪了······

弄成代码快照 方便看

提问者:忘不了的乡下妞 2014-11-28 12:05

个回答

  • 简单的歌
    2014-11-28 13:06:42
    已采纳

    1.51行多了一个“<br>”

    2.63,64行的this看作用域知道指的是window对象,其属性className和index都是undefined。

    正确的应该把

    this.className="on";

    odiv[this.index].className="";

    这两行放在第一个for循环内,最终为

    <script type="text/javascript">

            window.onload = function(){

               var otabl = document.getElementById("tabl");      

           var oli = document.getElementsByTagName("li");

           var odiv = otabl.getElementsByTagName("div");

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

               oli[i].index = i;

               oli[i].onclick = function() {

                     for(var n=0;n<oli.length;n++){

                     oli[n].className="";

                         odiv[n].className="hide"

                   }

                   this.className="on";

                  odiv[this.index].className="";

              }       

            }

          }

         </script>

    希望对你能有所帮助^_^

  • cherryoung
    2014-12-16 15:27:47

    this.className="on";
    odiv[this.index].className="";//显示下一个div

    这两行要写在onclick函数里面,否则在外面this是谁都不知道