js如何实现动态点击改变单元格颜色?
js如何实现动态点击改变单元格颜色?
打赏
一、总结
1、通过table的rows属性,遍历表格所有行,然后通过cells属性,遍历每一行中的单元格。
2、遍历的过程中,动态的为每一个单元格定义单击事件,改变单元格的背景色
二、js如何实现动态点击改变单元格颜色?
1、动态改变单元格背景色案例
- 实例描述:
单击单元格后改变其背景颜色,再次单击则恢复之前样式
- 案例要点:
- 通过table的rows属性,遍历表格所有行,然后通过cells属性,遍历每一行中的单元格。
- 遍历的过程中,动态的为每一个单元格定义单击事件,改变单元格的背景色
2、用到的表格属性和方法
Table 对象集合
- cells[] 返回包含表格中所有单元格的一个数组。
语法:tableObject.cells[]
- rows[] 返回包含表格中所有行的一个数组。
rows 集合返回表格中所有行的一个数组。该集合包括 thead、tfoot 和 tbody 中定义的所有行。
三、代码
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>表格专题</title> 6 </head> 7 <body> 8 <table id="tab" border="1"> 9 <caption>表格名称</caption> 10 <thead> 11 <tr> 12 <th colspan="3">标题1</th> 13 </tr> 14 </thead> 15 <tbody> 16 <tr> 17 <td>单元格11</td> 18 <td>单元格12</td> 19 <td>单元格13</td> 20 </tr> 21 <tr> 22 <td>单元格21</td> 23 <td>单元格22</td> 24 <td>单元格23</td> 25 </tr> 26 <tr> 27 <td>单元格31</td> 28 <td>单元格32</td> 29 <td>单元格33</td> 30 </tr> 31 </tbody> 32 <tfoot><td>备注:</td><td colspan="2"></td></tfoot> 33 </table> 34 <script type="text/javascript"> 35 /* 36 var tab=document.getElementById('tab') //获取表格元素 37 var rows=tab.rows; //返回包含表格中所有行的一个数组。 38 var rlen=rows.length; 39 alert(rlen) 40 //var cells=tab.cells; 41 //var clen=cells.length //这种写法会出错 42 cells=rows[1].cells //某一行的单元格 43 alert(cells.length) 44 */ 45 function tabCell(){ 46 var tab=document.getElementById('tab') 47 var rows=tab.rows; 48 var rlen=rows.length; 49 for (var i = 1; i <rlen; i++) { //遍历所有行 50 var cells=rows[i].cells; //得到这一行的所有单元格 51 for (var j = 0; j < cells.length; j++) 52 { 53 //给每一个单元格添加click事件 54 cells[j].onclick=function(){ 55 if (this.style.background=='') { 56 this.style.background='green' 57 }else{ 58 this.style.background='' 59 } 60 } 61 62 } 63 } 64 } 65 tabCell() 66 </script> 67 </body> 68 </html>
四、测试题-简答题
1、如何动态给元素添加点击事件?
解答:cells[j].onclick=function(){函数体}。
2、如何动态的获取元素的背景属性?
解答:if (this.style.background=='')。
3、table表格的行(rows)属性和列属性(或者说单元格属性cells)的关系?
解答:行包含单元格(cells是rows的属性),var cells=rows[i].cells; //得到这一行的所有单元格。
4、如何动态的获取元素?
解答:var tab=document.getElementById('tab')。
5、如何动态从表格中取到某个单元格的dom对象?
解答:通过table的rows属性,遍历表格所有行,然后通过cells属性,找到我们需要的单元格。
6、如何判断js中某个标签是否设置了背景色属性?
解答:获取标签对应的dom对象,然后判断dom对象的style的background属性是否为空字符串。if (this.style.background=='')。
版权申明:欢迎转载,但请注明出处
一些博文中有一些参考内容因时间久远找不到来源了没有注明,如果侵权请联系我删除。
在校每年国奖、每年专业第一,加拿大留学,先后工作于华东师范大学和香港教育大学。
2025-01-31:宅加太忙,特此在网上找女朋友,坐标上海,非诚勿扰,vx:fan404006308
AI交流资料群:753014672
作者相关推荐
标签:
js进阶课程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
2017-05-28 C++编程模板2
2017-05-28 递归C++
2017-05-28 递推算法