利用html css javascript实现表格的单选和全选

此代码尚未实现反选和全不选

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    *{
        margin: 0;
        padding: 0;
    }
    table{
        width: 420px;
        height: 300px;
    }
    thead{
        background-color: rgb(0,141,208);
        color: #fff;
    }
    .bg{
        background-color: rgb(247,250,247);
    }
    tbody tr{
        background-color: rgb(238,241,238);
        color: rgb(84,85,105);
    }
</style>
<body>
    <table>
        <thead id='j_cbAll'>
            <tr>
            <th><input type="checkbox"></th>
            <th>商品</th>
            <th>价钱</th>
            </tr>
        </thead>
        <tbody id='j_tbs'>
            <tr>
                <td><input type="checkbox"></td>
                <td>iPone8</td>
                <td>8000</td>
            </tr>
            <tr>
                <td><input type="checkbox"></td>
                <td>iPad Pro</td>
                <td>5000</td>
            </tr>
            <tr>
                <td><input type="checkbox"></td>
                <td>iPad Air</td>
                <td>2000</td>
            </tr>
            <tr>
                <td><input type="checkbox"></td>
                <td>Apple Watch</td>
                <td>2000</td>
            </tr>
        </tbody>
    </table>
<script>
    //表格变色效果开始
    var trs=document.querySelector('tbody').querySelectorAll('tr');
    for(var i=0;i<trs.length;i++){
        trs[i].onmouseover=function(){
            this.className='bg';
        }
        trs[i].onmouseout=function(){
            this.className='';
        }
    }
    // 变色效果结束
    //全选 单选效果
    var j_cbAll=document.getElementById('j_cbAll').querySelector('input');
    var j_tbs=document.getElementById('j_tbs').querySelectorAll('input');
    var flag=true;
    // 给全选效果绑定事件,如果全选checked,单选全部checked。
    j_cbAll.onclick=function(){
        // 遍历每个单选按钮
        for(var i=0;i<j_tbs.length;i++){
            // 更改每个按钮的checked,与全选按钮的checked一致
            j_tbs[i].checked=this.checked;
        }
    }
    for(var i=0;i<j_tbs.length;i++){
        // 遍历每个单选给每个单选绑定事件
        j_tbs[i].onclick=function(){
            // 遍历每个单选的checked情况
            for(var i=0;i<j_tbs.length;i++){
                // 如果其中一个没有checked则全选的checked为false
                if(!j_tbs[i].checked){
                    flag=false;
                }
                j_cbAll.checked=flag;
            }
        }
    }
</script>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/weiyuyang250/article/details/120714098
今日推荐