使用JS实现跨列显色

一、题目要求

  使用click点击事件实现对表格跨行显示(列在js中是用td表示并且称为单元格 )

   1)先设置一个6行7列的表格(随便自己设置)

   2)基础样式为单数列全部默认显示(有一个底色) 

   3)要求点击随便那列,那列就显色,并且其他列不显色。

难点:

  1)如何解决点击一个单元格其所在列的所有单元和显色,而其他列不显色。

二、思路

  1)先遍历所有行(获取的是一个类数组),然后将每行的偶数列显色(即下标为0,2 ,···)。

  2)再获取每个单元格(td)(这里是类数组)

注意:获取单元格不能将偶数项(下标)设置为点击显色。因为获取的单元格是所有行和列组成的(第二行的第一个会被当做下标为7的奇数,所以与题目有悖)

 3)对单元格设置点击事件,并且设置排他事件。(排他事件是指点击这个单元格其他单元格不显色)

 4)将点击后的单元格设置一个方法让他知道自己为第几行的第几个元素。

封装的方法:

Object.prototype.selfpo = function () {
    // 获取父元素所有的子元素节点
    let Sons = this.parentElement.children;
    // 遍历取出
    for (let i = 0; i < Sons.length; i++) {
        // 同调用者比较
        if (Sons[i] == this) {
            return i
        }
    }
}

三、结果展示

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值