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

一、总结

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

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

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

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

  • 实例描述:

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

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

2、用到的表格属性和方法

Table 对象集合
  • cells[] 返回包含表格中所有单元格的一个数组。

    语法:tableObject.cells[]

  • rows[] 返回包含表格中所有行的一个数组。

    rows 集合返回表格中所有行的一个数组。该集合包括 thead、tfoot 和 tbody 中定义的所有行。

三、代码

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>表格专题</title>
</head>
<body>
<table id="tab" border="1">
<caption>表格名称</caption>
<thead>
<tr>
<th colspan="3">标题1</th>
</tr>
</thead>
<tbody>
<tr>
<td>单元格11</td>
<td>单元格12</td>
<td>单元格13</td>
</tr>
<tr>
<td>单元格21</td>
<td>单元格22</td>
<td>单元格23</td>
</tr>
<tr>
<td>单元格31</td>
<td>单元格32</td>
<td>单元格33</td>
</tr>
</tbody>
<tfoot><td>备注:</td><td colspan="2"></td></tfoot>
</table>
<script type="text/javascript">
/*
var tab=document.getElementById('tab') //获取表格元素
var rows=tab.rows; //返回包含表格中所有行的一个数组。
var rlen=rows.length;
alert(rlen)
//var cells=tab.cells;
//var clen=cells.length //这种写法会出错
cells=rows[1].cells //某一行的单元格
alert(cells.length)
*/
function tabCell(){
var tab=document.getElementById('tab')
var rows=tab.rows;
var rlen=rows.length;
for (var i = 1; i <rlen; i++) { //遍历所有行
var cells=rows[i].cells; //得到这一行的所有单元格
for (var j = 0; j < cells.length; j++)
{
//给每一个单元格添加click事件
cells[j].onclick=function(){
if (this.style.background=='') {
this.style.background='green'
}else{
this.style.background=''
}
} }
}
}
tabCell()
</script>
</body>
</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. JS 原型模式创建对象

    例子: class Test { constructor(val) { this.val = val } walk() { console.log(this) console.log('walk') ...

  2. HTML基础-第二讲

    转自:https://blog.csdn.net/likaier/article/details/326657 我们在第一讲里概括了一下网页的主要框架,现在我们来详细的研究网页的内部细则: 先从它的身 ...

  3. 利用jquery.fullPage.js 和 scrolloverflow.min.js 实现滚屏效果

    参考链接:https://blog.csdn.net/c11073138/article/details/79631036 /* 按着思路去search. */

  4. 查看网站使用何种框架或者技术的插件——Wappalyzer

    Wappalyzer这款插件很强大,可以查看任何网站使用的技术,包括后端语言框架和前端语言框架.还有服务器是何种类型.甚至各种版本... 插件官网:https://wappalyzer.com/

  5. SSMM框架

    IDEA搭建SSMM框架(详细过程) 相关环境 Intellij IDEA Ultimate Tomcat JDK MySql 5.6(win32/win64) Maven (可使用Intellij ...

  6. regexp模式匹配+location页面跳转+cookie/localstorage本地存储

    学习js的过程中,根据知识点编写一些code进行测试,以便检验. 这段程序使用了以下知识点: 1.regexp,对数据进行模式匹配 2.使用location对象进行页面跳转. 3.cookie/loc ...

  7. 网站图标——favicon

    首先推荐一个网站图标在线制作工具favicon: 插入图标只需在head中间加入以下代码: <link rel="icon" href="img/favicon.i ...

  8. centos7.0查看IP

    原文:centos7.0查看IP 输入ip查询命名 ip addr  也可以输入 ifconfig(centOs7没有ifconfig命令)查看ip,但此命令会出现3个条目,centos的ip地址是e ...

  9. php实现运气模型(命运随机,克服困难)

    php实现运气模型(命运随机,克服困难) 一.总结 1.应该用表格来布局的,这种多列的用表格布局比div和span布局方便很多 2.span标签设置宽度:变成行内快元素:display:inline- ...

  10. 2019年Angular7——安装搭建路由

    Angular 中文官方:https://www.angular.cn/ 为什么要看Angular?我也不知道,因为公司有个Angular的项目要维护.听说Angular的版本已经到7了.以前没怎么玩 ...