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

各位大(T_T)求科普,我打问号的这几句是什么意思呀?

for (var i =0,len=oLis.length;i<len;i++)

    {

    oLis[i].index=i;//???

    oLis[i].onclick=function()

    {

    for(var n=0;n<len;n++)

    {

    oLis[n].className="";//???

    oDivs[n].className="hide";//???

    }

    this.className="on";//???

    oDivs[this.index].className="";//???

    }

    }

    }


提问者:大宝的爸爸 2020-02-14 17:06

个回答

  • 菠萝先生
    2020-02-18 15:02:27

    for (var i = 0, len = oLis.length; i < len; i++)       { 
    //大致分析应该错不了           
          oLis[i].index = i; //???  这里的index应该是存储被点击的项目的索引  就是保存谁被点击了 因为是同一个i             
          oLis[i].onclick = function (){
              for (var n = 0; n < len; n++)//点击了后内部再来循环   
              {                   
               oLis[n].className = ""; //??? 先去除所有类名 保证所有项都没有类名                     
               oDivs[n].className = "hide"; //??? 再把所有Div都添加上 hide 就是把所有选项卡都隐藏了    
              }                
              this.className = "on"; //??? 把被点击的这一项显示出来                
              oDivs[this.index].className = ""; //??? 把应该显示的选项卡清除hide类 就显示出来了 (调用index索引,this.index就是点击的这项)           
         }      
     }


  • 菠萝先生
    2020-02-18 14:59:35

    for (var i = 0, len = oLis.length; i < len; i++)        {   //大致分析应该错不了            oLis[i].index = i; //???  这里的index应该是存储被点击的项目的索引  就是保存谁被点击了 因为是同一个i             oLis[i].onclick = function ()            {                for (var n = 0; n < len; n++)//点击了后内部再来循环                {                    oLis[n].className = ""; //??? 先去除所有类名 保证所有项都没有类名                      oDivs[n].className = "hide"; //??? 再把所有Div都添加上 hide 就是把所有选项卡都隐藏了                }                this.className = "on"; //??? 把被点击的这一项显示出来                oDivs[this.index].className = ""; //??? 把应该显示的选项卡清除hide类 就显示出来了 (调用index索引,this.index就是点击的这项)            }        }