我有若干张html网页,期中表单格式一般如下
<html>
<table>
  <tr></tr>
  <tr></tr>
</table>
</html>
并且tr中没有onmouseover这个方法,我现在要实现鼠标滑过时某行时变色,但有不想每一个页面都去
添加onmouseover这个方法,想在一个js里实现,然后把js导入就可以,如何实现,请教高手?

解决方案 »

  1.   

    js文件中
    function changecolor(obj){
    obj.style.color="red";
    obj.style.cursor="hand";
    obj.bgColor="#99FFFF";
    }function returncolor(obj){
    obj.style.color="black";
    obj.bgColor="#FFFFFF";
    }
    页面中
    <tr onmouseover="changecolor(this)" onmouseout="returncolor(this)">
      

  2.   

    js 文件中
    function addEvent(obj,name,handler,useCapture){//注册事件的函数
      if(window.event){//IE浏览器类型
        obj.attachEvent('on'+name,handler);
      }else{
        obj.addEventListener(name,handler,useCapture)
      }
    }function mouseOverEventHandler(e){//鼠标滑过
       var evt = e || event;
       var elm = evt.target || evt.srcElement;
       if(elm.tagName.toLowerCase()=='tr'){
         elm.style.color="red"; 
         elm.bgColor="#99FFFF"; 
       }
    }function mouseOutEventHandler(e){//鼠标划出
       var evt = e || event;
       var elm = evt.target || evt.srcElement;
       if(elm.tagName.toLowerCase()=='tr'){
         elm.style.color="black"; 
         elm.bgColor="#FFFFFF"; 
       }
    }function init(){
       var trObjs = document.getElementsByTagName("tr");
       for(var i=0;i<trObjs.length;i++){
           addEvent(trObjs [i],'mouseover',mouseOverEventHandler,false);
           addEvent(trObjs [i],'mouseout',mouseOutEventHandler,false);
       }
    }window.onload = init;
      

  3.   

    发现有点小错误 改正下 
    function addEvent(obj,name,handler,useCapture){
        if(window.event){
            obj.attachEvent('on'+name,handler); 
        }else{ 
            obj.addEventListener(name,handler,useCapture) 
        } 
    } function mouseOverEventHandler(e){
          var   evt   =   e   ||   event; 
          var   elm   =   evt.target   ||   evt.srcElement; 
          if(elm.tagName.toLowerCase()== 'td'){ 
              elm.parentElement.style.color= "red";   
          } 
    } function mouseOutEventHandler(e){
          var   evt   =   e   ||   event; 
          var   elm   =   evt.target   ||   evt.srcElement; 
          if(elm.tagName.toLowerCase()== 'td'){ 
              elm.parentElement.style.color= "black";   
          } 
    } function  init(){ 
          var trObjs   =   document.getElementsByTagName("tr"); 
          for(var i=0;i<trObjs.length;i++){ 
                  addEvent(trObjs[i], 'mouseover',mouseOverEventHandler,false); 
                  addEvent(trObjs[i], 'mouseout',mouseOutEventHandler,false); 
          } 

    window.onload = init;
      

  4.   

    可以实现当鼠标滑过时字体的颜色变了,但是如果要实现整行<tr>的背景颜色都变,而不是某一个td变色怎么实现,而且表头和表尾不能鼠标滑过也变色!