【JavaScript】DOM查询之全选练习

通过上期【JavaScript】DOM和事件简介和文档加载流程以及DOM查询(上)案例(附源码)再接一个全选小练习。

实现效果:
在这里插入图片描述

代码:

<!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>
    <script>
        window.onload = function(){
      
      
            //找到所有元素
            var items = document.getElementsByName('item');
            //全选和全不选的按钮
            var checkAll = document.getElementById('checkAll');
            

            //给全选框添加单击事件函数
            document.getElementById('checkAllBtn').onclick = function(){
      
      
                //找到所有元素
                for(var i = 0; i<items.length; i ++){
      
      
                    items[i].checked = true;
                }
                checkAll.checked = true;
            }

            //给全不选框添加单击事件函数
            document.getElementById('checkAllNoBtn').onclick = function(){
      
      
                for(var i = 0;i<items.length; i ++){
      
      
                    items[i].checked =false;
                }
                checkAll.checked = false;
            }

            //给反选框添加单击事件函数
            document.getElementById('checkReBtn').onclick = function(){
      
      
                checkAll.checked = true;
                for(var i = 0;i<items.length;i ++){
      
      
                    if(items[i].checked){
      
      
                        items[i].checked = false;
                    }else{
      
      
                        items[i].checked = true;
                    }
                    if(items[i].checked == false){
      
      
                            checkAll.checked = false;
                        }
                }
            }

            //给提交按钮添加单击事件函数
            document.getElementById('send').onclick = function(){
      
      
                for(var i = 0;i<items.length;i ++){
      
      
                    if(items[i].checked){
      
      
                        alert(items[i].value)
                    }
                }
            }

            //给全选/全不选框添加单击事件函数
            document.getElementById('checkAll').onclick = function(){
      
      
                for(var i = 0;i<items.length;i ++){
      
      
                    items[i].checked = this.checked;

                }
            }

            //给items设置单击相应函数
            for(var i = 0;i<items.length;i ++){
      
      
                items[i].onclick = function(){
      
      
                    checkAll.checked = true;
                    for(var j = 0;j<items.length; j++){
      
      
                        if(items[j].checked == false){
      
      
                            checkAll.checked = false;
                            break;
                        }
                    }
                }
            }
        }
    </script>
    <style>
        div{
      
      
            width: 350px;
            margin: 50 auto;
            background-color:lightblue;
            text-align: center;
        }
    </style>
</head>
<body>
    <div>
        <span>你拥有以下哪些角色?</span>
        <input type="checkbox" id="checkAll" value="全选/全不选">全选/全不选<br>
        <input type="checkbox" name="item" value="枫原万叶">枫原万叶
        <input type="checkbox" name="item" value="可丽">可丽
        <input type="checkbox" name="item" value="刻晴">刻晴
        <input type="checkbox" name="item" value=""><input type="checkbox" name="item" value="钟离">钟离<br>
        <input type="button" id="checkAllBtn" value="全选">
        <input type="button" id="checkAllNoBtn" value="全不选">
        <input type="button" id="checkReBtn" value="反选"><br>
        <input type="submit" id="send" value="提交">
    </div>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/weixin_46277553/article/details/125585853