永发信息网

javascript的onclick事件求解

答案:3  悬赏:60  手机版
解决时间 2021-05-06 05:44
我要做一个网页的一个特效, 就是在一个表格中,我点击某一列的时候,那一列的背景颜色就会变成蓝色。然后当我点击另一行时, 那一行的背景颜色就变成蓝色,而先前点击过的那一列的背景颜色又变成默认的颜色,谁知道该怎么做呀?  谢谢各位大虾了!!
最佳答案

设置行的背景色很容易,设置<tr>的背景色即可


可以在<tr>中:


<tr onClick='this.background-color:#FF0000'>


但是要改变列的颜色就没那么容易了,因为没有一个标签能代表整个列。所以必须对每一行的相同位置的单元格进行变色,这就需要对每个单元格进行编号了。

全部回答
<html><head><script type="text/javascript">var lineNum=0,colNum=0,lastCol=0;window.onload=function(){ lineNum=document.getElementsByTagName("tr").length; colNum=document.getElementsByTagName("td").length/lineNum; for(i=0;i<document.getElementsByTagName("td").length;i++){  document.getElementsByTagName("td")[i].setAttribute("colNum",i%colNum);  document.getElementsByTagName("td")[i].onclick=function(){changeColor(this)};  }}function changeColor(trObj){ var colNew=Number(trObj.getAttribute("colNum"));  if(lastCol!=colNew){  removeColor(lastCol);  lastCol=colNew; }  for(n=0;n<lineNum;n++){ document.getElementsByTagName("td")[colNew+(n*colNum)].style.background="#FF0000";  }}function removeColor(colLast){ for(n=0;n<lineNum;n++){ document.getElementsByTagName("td")[colLast+(n*colNum)].style.background="#FFFFFF";  }}</script><style type="text/css"> table{border-collapse:collapse;}  td{border:1px solid #CCC;height:25px;padding:0 20px;} tr{cursor:pointer;}</style></head><body><table id="t"> <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr> <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>  <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>  <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>  <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>  </table></body></html> 写得还不是很简洁,对不住了

给你一个代码,绝对好使。。。

<html> <head> <script type="text/javascript"> function changeColor(ri){  var t=document.getElementById("t");  var rows=t.rows;  for(var i=0;i<rows.length;i++){   rows[i].style.background='white';   }  rows[ri.rowIndex].style.background='blue'; } </script> <style type="text/css">  table{border-collapse:collapse;}   td{border:1px solid #CCC;height:25px;padding:0 20px;}  tr{cursor:pointer;} </style> </head>

<body> <table id="t">  <tr onclick="changeColor(this)" ><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>  <tr onclick="changeColor(this)"><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>   <tr onclick="changeColor(this)"><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>   <tr onclick="changeColor(this)"><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>   <tr onclick="changeColor(this)"><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>   </table> </body>

</html>

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
DNF浙江4区一套流光要多少YXB或RMB
大步我想知道这个在什么地方
夏天在哪里避暑才好呢???去哪里?
重庆什么地方有卖Tokio Hotel 专辑的?
QQ丝路英雄,怎样防止别人攻打?
现在游戏人生怎么自动点荣誉?
胸上有个红痣代表什么,女人右胸部下长一颗痣
为什么QQ会自动断线
项目实施工程师主要做什么的!!!
小明把一块金子放在窗台上,下雨了,金子为什么
怎样炼成一个优秀的控卫?
倚天装饰广告我想知道这个在什么地方
我的热血传奇不能打卡了?
仙四的光盘掉了……
我想开一家服装店,我只有两万元,够不够呢?
推荐资讯
悠然自得的悠然的意思,醉迷红尘,浅掬流年 执
肚子痛总是上厕所
网页没背景怎么弄
恒生塑业地址在什么地方,想过去办事
现在深圳电子厂找工的多不多?
临清到商丘火车时刻表
左手麻是怎么回事?
河南长垣离辽宁昌图多少公里
办Q会员多久升一级?
爱墙图标点亮
肚子上肉肉太多
怎样做可以早睡, 不失眠
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?