悠悠隐于市 2011-08-18 23:41
浏览 347
已采纳

javascript对table设置样式的问题..

下面是完整的代码:
我是想通过,鼠标移到tr上面,把背景样式改变,然后,鼠标单击的时候,也该表背景颜色,
现在这一步已经完成,

还有一个就是鼠标移到其他行,又需要恢复,onmouseover和 onmouseOut 的样式。 这个要怎么实现?请教一下...



<br> //单击时,改变样式;<br> function onClickChangeStyle(obj){<br> //获取表格对象;<br> var tab = document.getElementById(&quot;tab&quot;);</p> <pre><code> //获取当前行选择下标; var currentRowIndex = obj.rowIndex; //获取表格所有行数; var tablRows = tab.rows.length; //获取表格第一行,第一列的值; //var firstCellValue = tab.rows[0].cells[0].innerHTML; //获取表格的第一行,第一列的第一个元素的值; //var firstChildValue = tab.rows[0].cells[0].firstChild.value; //循环表格的所有行;并且选择的当前行,改变背景颜色; for(var i = 0;i&lt;tablRows;i=i+1){ if(currentRowIndex == i){ //为选中的当前,设置css样式; tab.rows[i].style.cssText=&quot;background-color:00FFFF&quot;; }else{ //把没有选中的行的背景样式设置为白色; tab.rows[i].style.cssText=&quot;background-color:white&quot;; tab.rows[i].onmouseover = function(){ this.className=&quot;displayStyle&quot;; //tab.rows[i].className=&quot;displayStyle&quot;; } //绑定鼠标移开事件,并且设置样式为白色; tab.rows[i].onmouseout = function() { this.cssText=&quot;background-color:white;&quot;; //tab.rows[i].className=&quot;hideStyle&quot;; } } } } &lt;/script&gt; &lt;style&gt; .displayStyle{ background-color:blue; } .hideStyle{ background-color:white; } .onClickStyle{ background-color:red; } &lt;/style&gt; &lt;/head&gt; &lt;body&gt; &lt;form name=&quot;myForm&quot;&gt; &lt;table width=&quot;100%&quot; id=&quot;tab&quot; name=&quot;tab&quot;&gt; &lt;tr id=&quot;tr1&quot; onmouseOver=this.className=&quot;displayStyle&quot; onmouseOut=this.className=&quot;hideStyle&quot; onclick=&quot;onClickChangeStyle(this)&quot;&gt; &lt;td&gt;&lt;input type=&quot;checkbox&quot; value=&quot;11&quot;/&gt;&lt;/td&gt; &lt;td&gt;100&lt;/td&gt; &lt;td&gt;张三&lt;/td&gt; &lt;td&gt;15&lt;/td&gt; &lt;td&gt;湖南株洲&lt;/td&gt; &lt;/tr&gt; &lt;tr id=&quot;tr2&quot; onmouseOver=this.className=&quot;displayStyle&quot; onmouseOut=this.className=&quot;hideStyle&quot; onclick=&quot;onClickChangeStyle(this)&quot;&gt; &lt;td&gt;&lt;input type=&quot;checkbox&quot; value=&quot;22&quot;/&gt;&lt;/td&gt; &lt;td&gt;100&lt;/td&gt; &lt;td&gt;李四&lt;/td&gt; &lt;td&gt;15&lt;/td&gt; &lt;td&gt;湖南长沙&lt;/td&gt; &lt;/tr&gt; &lt;tr id=&quot;tr3&quot; onmouseOver=this.className=&quot;displayStyle&quot; onmouseOut=this.className=&quot;hideStyle&quot; onclick=&quot;onClickChangeStyle(this)&quot;&gt; &lt;td&gt;&lt;input type=&quot;checkbox&quot; value=&quot;33&quot;/&gt;&lt;/td&gt; &lt;td&gt;100&lt;/td&gt; &lt;td&gt;王五&lt;/td&gt; &lt;td&gt;15&lt;/td&gt; &lt;td&gt;湖南湘潭&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;/form&gt; &lt;/body&gt; </code></pre> <p></html></p>
  • 写回答

2条回答

  • weixin_42317583 2011-08-22 09:36
    关注

    //insertRow,insertCell都要加标添加下标的,还有样式名称怎么能加方法呢//this.className="onClickChangeStyle(this)";

    var tab = document.getElementById('tab');
    var rowIndex = tab.rows.length;

    //添加一行;
    var tr = tab.insertRow(3);

    tr.onmouseOver = tr.className="displayStyle" ;
    tr.onmouseOut = tr.className="hideStyle" ;
    tr.onclick=function (){onClickChangeStyle(this);}

    var td1 = tr.insertCell(0);
    td1.innerHTML="11";
    var td2 = tr.insertCell(1);
    td2.innerHTML="22";
    var td3 = tr.insertCell(2);
    td3.innerHTML="33";
    var td4 = tr.insertCell(3);
    td4.innerHTML="44";

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)