吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 777|回复: 5
收起左侧

[学习记录] js实现全选框-全选-全不选-反选-联动选项的功能

[复制链接]
Xiexian 发表于 2023-6-13 09:25
本帖最后由 Xiexian 于 2023-6-13 09:32 编辑

js实现全选框-全选-全不选-反选-联动选项的功能

[JavaScript] 纯文本查看 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        window.onload = function(){
            let Oall = document.getElementById("all");
            let Ounall = document.getElementById("unall");
            let Oinvert = document.getElementById("invert");
            let OA = document.getElementById("Asd");
            let Obox = document.getElementById('box');
            let Oinp = Obox.getElementsByTagName("input");
            let i;
            //全选按钮事件
            Oall.onclick = function(){
                for(i = 0; i<Oinp.length; i++){
                    Oinp[i].checked = true;
                }
                OA.checked = true;
            }
            //全不选按钮事件
            Ounall.onclick = function(){
                for(i = 0; i<Oinp.length; i++){
                    Oinp[i].checked = false;
                }
                OA.checked = false;
            }
            //全部反选按钮事件
            Oinvert.onclick = function(){
                for(i = 0; i<Oinp.length; i++){
                    Oinp[i].checked = !Oinp[i].checked;
                }
                let count = 0;
                    for(i = 0; i<Oinp.length; i++){
                        if(Oinp[i].checked){
                            count++;
                        }
                    }
                
                    if(count == Oinp.length){
                        OA.checked = true;
                    }else{
                        OA.checked = false;
                    }
            }
            //全选复选框事件
            OA.onclick = function(){
                for(i =0; i<Oinp.length; i++){          //如果全选被选中,则下列全部勾选
                    Oinp[i].checked = OA.checked;
                }
            }
            // debugger;
            //复选框勾选
            for(i = 0; i<Oinp.length; i++){
                
                Oinp[i].onclick = function(){           //这是刷新页面的原因:事件发生了
                    let count = 0;                      //用于计数,如果count==Oinp.length那么全部选中
                    for(i = 0; i<Oinp.length; i++){
                        if(Oinp[i].checked){
                            count++;
                        }
                    }
                
                    if(count == Oinp.length){
                        OA.checked = true;
                    }else{
                        OA.checked = false;
                    }
                }
            }
            


        }
        

    </script>
    <input type="checkbox" id="Asd">全选
    <hr>
    <input type="button" value="all" id="all">
    <input type="button" value="unall" id="unall">
    <input type="button" value="invert" id="invert">
    <hr>
    <div id="box">
        <input type="checkbox">
        <input type="checkbox">
        <input type="checkbox">
    </div>
    
</body>
</html>

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
RainH + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

not2die 发表于 2023-6-13 09:31
反选可以取非,OA.checked = !OA.checked
 楼主| Xiexian 发表于 2023-6-13 09:33
not2die 发表于 2023-6-13 09:31
反选可以取非,OA.checked = !OA.checked

是的,我昨晚晚上改这几个,脑子昏昏的,第二天早上起床一改就成功!
qiqi2050352 发表于 2023-6-13 10:04
d199212 发表于 2023-6-13 10:27
很经典的场景啊
RainH 发表于 2023-6-13 13:20
js实现全选框-全选-全不选-反选-联动选项的功能
收藏备用
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 22:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表