js如何实现动态点击改变单元格颜色?

一、总结

1、通过table的rows属性,遍历表格所有行,然后通过cells属性,遍历每一行中的单元格。

2、遍历的过程中,动态的为每一个单元格定义单击事件,改变单元格的背景色

二、js如何实现动态点击改变单元格颜色?

1、动态改变单元格背景色案例

  • 实例描述:

    单击单元格后改变其背景颜色,再次单击则恢复之前样式

  • 案例要点:
    1. 通过table的rows属性,遍历表格所有行,然后通过cells属性,遍历每一行中的单元格。
    2. 遍历的过程中,动态的为每一个单元格定义单击事件,改变单元格的背景色

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=='')。

js如何实现动态点击改变单元格颜色?的更多相关文章

  1. ABAP 动态内表添加单元格颜色字段

    *动态内表alv显示时要求某些单元格显示颜色 *wa_fldcat-datatype不能添加LVC_T_SCOL类型,在创建好内表之后,再添加颜色列. DATA: wa_fldcat TYPE lvc ...

  2. easyui的datagrid改变单元格颜色

    另一种方法:https://www.cnblogs.com/raitorei/p/10395233.html easyui的datagrid改变整行颜色:https://www.cnblogs.com ...

  3. sencha gridpanel改变单元格颜色

    标题列包含 审核通过则绿色,包含拒绝为红色: { xtype: 'gridcolumn', renderer: function(value, metaData, record, rowIndex, ...

  4. DevExpress控件-GridControl根据条件改变单元格(Dev GridControl 单元格着色)

    DevExpress控件-GridControl根据条件改变单元格颜色,如下图: 解决办法:可以参考:http://www.cnblogs.com/zeroone/p/4311191.html 第一步 ...

  5. Gridview 重建表头/单击单元格弹出对话框/改变单元格背景色

    整理工作~ 完整的代码在GitHub上, 路径: 项目背景:追踪某个issue,并且记录每天的状态. 要求:1.点击日期就能更改,并且用颜色标志不同的状态 2.增加按钮可关闭issue 3.布局要求日 ...

  6. DevExpress控件-GridControl根据条件改变单元格/行颜色--转载

    DevExpress控件-数据控件GridControl,有时我们需要根据特定条件改变符合条件的行或者单元格颜色达到突出显示目的,现在动起鼠标跟我一起操作吧,对的,要达到这个目的您甚至都不用动键盘. ...

  7. gridview根据条件来改变行的颜色以及改变单元格的颜色。

    gridview根据条件来改变行的颜色以及改变单元格的颜色. 通过在RowDataBound事件中写代码来实现,见代码. protected void GridView1_RowDataBound(o ...

  8. DevExpress控件-GridControl根据条件改变单元格/行颜色(Dev GridControl 单元格着色) z

    DevExpress控件-数据控件GridControl,有时我们需要根据特定条件改变符合条件的行或者单元格颜色达到突出显示目的,现在动起鼠标跟我一起操作吧,对的,要达到这个目的您甚至都不用动键盘. ...

  9. Swift - 实现点击UITableView单元格时自动展开单元格

    下面是一个列表单元格cell的折叠展开效果的demo.当点击单元格时会展开该单元格,便于显示一些详情什么的.点击其他单元格原来的会关闭,同时有动画效果. 效果如如下:   代码如下: 1 2 3 4 ...

随机推荐

  1. Spring异步执行(@Async)2点注意事项

    Spring中可以异步执行代码,注解方式是使用@Async注解. 原理.怎么使用,就不说了. 写2点自己遇到过的问题. 1.方法是公有的 // 通知归属人 @Async public void not ...

  2. hibernate中的事务管理是怎么概念?

    1.JDBC事务 JDBC 事务是用 Connection 对象控制的.JDBC Connection 接口( java.sql.Connection )提供了两种事务模式:自动提交和手工提交. ja ...

  3. 洛谷 P2562 [AHOI2002]Kitty猫基因编码

    P2562 [AHOI2002]Kitty猫基因编码 题目描述 小可可选修了基础生物基因学.教授告诉大家 Super Samuel 星球上 Kitty猫的基因的长度都是 2 的正整数次幂 ), 全是由 ...

  4. asp.net Code学习二(使用vs 2015 update 3)

    1.在vs 2015上搭建asp.net core:  安装 .Net core sdk.vs2015 tool 即可使用vs 2015开发asp.net core. 2.Net core中国学习小组 ...

  5. HTTP请求报文、响应报文

    HTTP请求报文 HTTP请求报文由3部分组成(请求行+请求头+请求体): 请求行:①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE.HEAD.OPTIONS.PUT. ...

  6. 前端面试题(HTML/CSS)

    (前端面试题大全,持续更新) 常用的块级元素和行内元素有哪些?说说他们的特点? 浮动产生的原因?清除浮动? 说说一下盒模型 float和position一起用是什么效果 rem用过吗?做不同手机的适配 ...

  7. solr6.3+tomcat8报错HTTP Status 403 – Forbidden解决办法

    注释掉tomcat下solr项目web.xml中的如下这段代码即可:

  8. 16、cgminer学习之:popen函数和system函数详解(执行系统命令)

    1.popen函数我们先用man指令查一下popen函数: 函数说明: (1)popen()会调用fork()产生子进程,然后从子进程中调用/bin/sh -c来执行参数command的指令. (2) ...

  9. Flask项目之手机端租房网站的实战开发(三)

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 接着上一篇博客继续往下写 :https://blog.csdn.net/qq_41782425/article/details/8 ...

  10. 利用Socket进行大文件传输

    分类: WINDOWS 最近接触到利用socket进行大文件传输的技术,有些心得,与大家分享.首先看看这个过程是怎么进行的(如下图):      所以,我们需要三个socket在窗体加载的时候初始化: ...