用js写出全选,反选,全不选效果

<!doctype html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>复选</title>

</head>

<body>

    <input type="button" value="全选" id='both'>

    <input type="button" value="反选" id='inverse'>

    <input type="button" value="不选" id='none'>

    <input type="checkbox" name='one'>

    <input type="checkbox" name='one'>

    <input type="checkbox" name='one'>

    <input type="checkbox" name='one'>

    <input type="checkbox" name='one'>

    <input type="checkbox" name='one'>

    <input type="checkbox" name='one'>

</body>



<script>

//全选

    var both = document.getElementById('both');

    var one = document.getElementsByName('one');    /*  获取复选框下的name    */

    both.onclick = function(){

        for(var i=0; i<one.length; i++){        /*    length只能用在群组里 不能给单个标签用    */

            if(one[i].checked==false){

            one[i].checked=true;

            }

        }

    }



//反选

var inverse = document.getElementById('inverse');

inverse.onclick =function(){

for(var i = 0 ; i < one.length ; i++){

    if(one[i].checked == true){

    one[i].checked = false ;

    }else{

        one[i].checked = true ;

        }

    }

}



//不选

var none = document.getElementById('none');

none.onclick = function(){

for(i = 0 ; i < one.length ; i++){

    if(one[i].checked == true){

        one[i].checked = false ;

        }

    }

}

</script>

</html>


更新一波:更简便的方法

<!doctype html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>反选效果</title>

</head>

<body>

    <div id="btns">

        <input type="button" value='全选'>

        <input type="button" value='反选'>

        <input type="button" value='不选'>

    </div>

    <div id='box'>

        <input type="checkbox">

        <input type="checkbox">

        <input type="checkbox">

        <input type="checkbox">

        <input type="checkbox">

        <input type="checkbox">

        <input type="checkbox">

        <input type="checkbox">

        <input type="checkbox">

    </div>

</body>

<script>

    var btns = document.getElementById('btns');

    var btn_inps = btns.getElementsByTagName('input');

    var box = document.getElementById('box');

    var box_inps  = box.getElementsByTagName('input');

/* //全选

        btn_inps[0].onclick = function(){

        for(i = 0 ; i < box_inps.length ; i++){

        // console.log(box_inps[i]);

        box_inps[i].checked = true;

        }

    }

*/

//反选

    btn_inps[1].onclick = function(){

    for(i = 0 ; i < box_inps.length ; i++){

    if(box_inps.checked == true){

    box_inps[i].checked = false;

        }else{

        box_inps[i].checked = true;

             }

        }

    }

/* //不选

        btn_inps[2].onclick = function(){

            for(i = 0 ; i < box_inps.length ; i++){

                    box_inps[i].checked = false;

            }

        }

*/

    btn_inps[0].onclick = function(){

        show(true);

    }

    btn_inps[2].onclick = function(){

        show(false);

    }

    function show(bool){

        for(var i = 0 ; i < box_inps.length ; i++){

            box_inps[i].checked = bool;

        }

    }

    show();

</script>

</html>

/*  注:  从我的编辑器里复制过来的 Tab键用的格式可能有点不太对,是需要稍微调整一下的    */

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些阅读 2,068评论 0 2
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,964评论 2 17
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,151评论 1 10
  • 找到fullcalendar.js, 找到代码为 isRTL:false,这句话 输入以下几句 monthName...
    迷你小小白阅读 1,740评论 0 1
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,554评论 0 13