[JavaScript] 实现隔行变色


隔行变色

1. 主要功能

  1. 表格奇偶行颜色不同
  2. 鼠标移入颜色高亮
  3. 全选/反选

2. 代码实现

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <title>隔行变色</title></head>
<body>
<table id="tab1" border="1" width="800" align="center">
    <tr>
        <th width="120px"><input id="bn1" type="checkbox">全选/<input id="bn2" type="checkbox">反选</th>
        <th>分类ID</th>
        <th>分类名称</th>
        <th>分类描述</th>
        <th>操作</th>
    </tr>
    <tr>
        <td><input type="checkbox" class="checkbox"></td>
        <td>1</td>
        <td>手机数码</td>
        <td>手机数码类商品</td>
        <td><a href="">修改</a>|<a href="">删除</a></td>
    </tr>
    <tr>
        <td><input type="checkbox" class="checkbox"></td>
        <td>2</td>
        <td>电脑办公</td>
        <td>电脑办公类商品</td>
        <td><a href="">修改</a>|<a href="">删除</a></td>
    </tr>
    <tr>
        <td><input type="checkbox" class="checkbox"></td>
        <td>3</td>
        <td>鞋靴箱包</td>
        <td>鞋靴箱包类商品</td>
        <td><a href="">修改</a>|<a href="">删除</a></td>
    </tr>
    <tr>
        <td><input type="checkbox" class="checkbox"></td>
        <td>4</td>
        <td>家居饰品</td>
        <td>家居饰品类商品</td>
        <td><a href="">修改</a>|<a href="">删除</a></td>
    </tr>
    <tr>
        <td><input type="checkbox" class="checkbox"></td>
        <td>5</td>
        <td>牛奶制品</td>
        <td>牛奶制品类商品</td>
        <td><a href="">修改</a>|<a href="">删除</a></td>
    </tr>
    <tr>
        <td><input type="checkbox" class="checkbox"></td>
        <td>6</td>
        <td>大豆制品</td>
        <td>大豆制品类商品</td>
        <td><a href="">修改</a>|<a href="">删除</a></td>
    </tr>
    <tr>
        <td><input type="checkbox" class="checkbox"></td>
        <td>7</td>
        <td>海参制品</td>
        <td>海参制品类商品</td>
        <td><a href="">修改</a>|<a href="">删除</a></td>
    </tr>
    <tr>
        <td><input type="checkbox" class="checkbox"></td>
        <td>8</td>
        <td>羊绒制品</td>
        <td>羊绒制品类商品</td>
        <td><a href="">修改</a>|<a href="">删除</a></td>
    </tr>
    <tr>
        <td><input type="checkbox" class="checkbox"></td>
        <td>9</td>
        <td>海洋产品</td>
        <td>海洋产品类商品</td>
        <td><a href="">修改</a>|<a href="">删除</a></td>
    </tr>
    <tr>
        <td><input type="checkbox" class="checkbox"></td>
        <td>10</td>
        <td>奢侈用品</td>
        <td>奢侈用品类商品</td>
        <td><a href="">修改</a>|<a href="">删除</a></td>
    </tr>
    <tr>
        <td><input type="checkbox" class="checkbox"></td>
        <td>4</td>
        <td>家居饰品</td>
        <td>家居饰品类商品</td>
        <td><a href="">修改</a>|<a href="">删除</a></td>
    </tr>
    <tr>
        <td><input type="checkbox" class="checkbox"></td>
        <td>4</td>
        <td>家居饰品</td>
        <td>家居饰品类商品</td>
        <td><a href="">修改</a>|<a href="">删除</a></td>
    </tr>
    <tr>
        <td><input type="checkbox" class="checkbox"></td>
        <td>4</td>
        <td>家居饰品</td>
        <td>家居饰品类商品</td>
        <td><a href="">修改</a>|<a href="">删除</a></td>
    </tr>
    <tr>
        <td><input type="checkbox" class="checkbox"></td>
        <td>10</td>
        <td>奢侈用品</td>
        <td>奢侈用品类商品</td>
        <td><a href="">修改</a>|<a href="">删除</a></td>
    </tr>
    <tr>
        <td><input type="checkbox" class="checkbox"></td>
        <td>4</td>
        <td>家居饰品</td>
        <td>家居饰品类商品</td>
        <td><a href="">修改</a>|<a href="">删除</a></td>
    </tr>
    <tr>
        <td><input type="checkbox" class="checkbox"></td>
        <td>4</td>
        <td>家居饰品</td>
        <td>家居饰品类商品</td>
        <td><a href="">修改</a>|<a href="">删除</a></td>
    </tr>
    <tr>
        <td><input type="checkbox" class="checkbox"></td>
        <td>4</td>
        <td>家居饰品</td>
        <td>家居饰品类商品</td>
        <td><a href="">修改</a>|<a href="">删除</a></td>
    </tr>
</table>
<!--
隔行变色
    1.表格奇偶行颜色不同
    2.鼠标移入颜色高亮 -->
<script>
    let trs = document.querySelectorAll("table tr");//获取所有的行
    for (let i = 0; i < trs.length; i++) {
        if (i % 2 == 0) {//索引是偶数行
            trs[i].style.backgroundColor = "#efefef";//浅灰色
        } else {//索引是奇数行
            trs[i].style.backgroundColor = "#ccc";//灰色
        }

        let oldColor = trs[i].style.backgroundColor;//原来的颜色
        trs[i].onmouseover = function () {//鼠标移入的时候
            this.style.backgroundColor = "pink";//粉色
        };
        trs[i].onmouseout = function () {//鼠标移出的时候
            this.style.backgroundColor = oldColor;//回复原色
        };
    }

    let btn1 = document.querySelector("#bn1");//全选
    let btn2 = document.querySelector("#bn2");//反选
    let boxes = document.querySelectorAll('input[class="checkbox"]');//获取所以复选框,返回数组NodeList
    console.log(boxes);

    btn1.onclick = function () {
        for (let b of boxes) {
            btn2.checked = false;
            if (btn1.checked) {
                b.checked = true;
            } else{
                b.checked = false;
            }
        }
    };

    btn2.onclick = function () {
        btn1.checked = false;
        for (let b of boxes) {
            b.checked = !b.checked;
        }
    };

</script>
</body>
</html>
  • 展示效果:
    在这里插入图片描述

原文链接:https://qwert.blog.csdn.net/article/details/105356282

发布了369 篇原创文章 · 获赞 381 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Regino/article/details/105356282