问答详情
源自:-

关于 divs[this.value].style.display='block';的问题

function $(id){
   return typeof id==='string'?document.getElementById(id):id;
}
window.onload=function(){
   //获取鼠标滑过或点击的标签和要切换内容的元素
   var titles=$('notice-tit').getElementsByTagName('li');
   var divs=$('notice-con').getElementsByTagName('div');
   if(titles.length!=divs.length)
       return;
   //遍历titles下所有li
   for(var i=0;i<titles.length;i++){
       titles[i].value=i;
       titles[i].onmouseover=function(){
           for(var j=0;j<titles.length;j++){
               titles[j].className='';
               divs[j].style.display='none';
           }
           this.className='select';
           divs[this.value].style.display='block';
       }

   }
};

这里最后一行divs[this.value].style.dispaly='block'和divs[i].style.display='block'为什么是不相同的?后面一个在浏览器上没反应,还有就是

titles[i].value/id/type都可以进行,那为什么titles[i].index不行???

提问者:Kiwis 2015-11-04 21:52

个回答

  • 李晓健
    2015-11-04 22:10:59
    已采纳

    首先要知道这个this是什么   在onmouseover 事件里  this就是指当前鼠标所处的元素。this.value就是一个固定的值,如果用i的话就是所有的了,在循环里i的取值是从0到titles.length的。就相把所有的title的style.display='block';

  • Kiwis
    2015-11-04 22:49:04

    你说的大概懂了,那个titles【i】.value/type/id都可以,为什么titles【i】.index不行呢?