问答详情
源自:9-22 编程练习

请问第二高票的改变背景的两行代码是什么意思?如何实现的,麻烦详细解答下,谢谢

var str_tr=document.getElementsByTagName('tr');
          for(var i=0;i<str_tr.length;i++){
           str_tr[i].setAttribute('onmouseover',document.all ? eval(function(){this.style.background="#f2f2f2"}) : 'javascript:this.style.background="#f2f2f2"');
           str_tr[i].setAttribute('onmouseout',document.all?eval(function(){this.style.background="#fff"}):'javascript:this.style.background="#fff"');
       }


提问者:weibo_Gingbery_0 2017-01-03 10:55

个回答

  • EastEgg
    2017-01-03 17:38:13

    var str_tr=document.getElementsByTagName('tr');  //获取文档中的tr元素并储存到变量str_tr中

              for(var i=0;i<str_tr.length;i++){  //循环遍历str_tr中的tr

               str_tr[i].setAttribute('onmouseover',document.all ? eval(function(){this.style.background="#f2f2f2"}) : 'javascript:this.style.background="#f2f2f2"');  //给str_tr中的tr设置onmouseover属性,并三元运算判断。应该是为了兼容的需要吧。

               str_tr[i].setAttribute('onmouseout',document.all?eval(function(){this.style.background="#fff"}):'javascript:this.style.background="#fff"');

           }