checkbox的全选与反选

需求:

       1.当all选项勾选时,所有选项都被勾选,反正当所有选项被选中时,全选选项自动选中

       2.点击反选按钮时,被选中的选项取消选中,未被选中的选项被选中

Html结构

<input type="checkbox">
<input type="checkbox">
<input type="checkbox">
<input type="checkbox">
<input type="checkbox">
<input type="checkbox">
all<input id="all" type="checkbox" onclick="check()">
<button type="button" onclick="fanx()">反选</button>

首先,我们得到我们要控制的元素,并且用for循环给每个checkbox绑定点击事件:

var all=document.getElementById("all")
var box=document.getElementsByTagName("input")   //此处选中了所有的input,包括全选按钮本身,在后面的操作中需要注意

for (i = 0; i < box.length-1; i++) {
box[i].onclick = onclike
}

1.全选

分析:我们让每个checkbox的checked属性都等于全选的checked属性,则可实现全选和全不选的操作,代码如下:

function check() {
  for (i = 0; i < box.length-1; i++) {
  box[i].checked = all.checked
  }
}

2.反向全选

分析:

方案一:通过变量j来计算有多少选项被选中,如果被选中的个数等于总个数,则全选的checked属性为true,代码如下:

function onclike() {
var j=0
for (i = 0; i < box.length - 1; i++) {
  if (box[i].checked) {
  j++
  }
}

all.checked=(j==box.length-1)
    /*if(j==box.length-1)
    {
    all.checked=true
    }

    else
     {
    all.checked=false
       }*/
}

方案二:只要有一个选项未被选择中,则全选属性为false,通过逻辑与的方式将每个选项的布尔值与之前比较,代码如下:

function onclike()

{

var flag=true

for (i = 0; i < box.length - 1; i++) {

var ifChecke = box[i].checked

flag = flag && ifChecke

}

all.checked=flag

}

3.反选

分析:当checked为true为真时,使其为false,否则为true,代码如下:

function fanx(){

for (i = 0; i < box.length-1; i++)

{

if(box[i].checked){

box[i].checked=false

}

else

{

box[i].checked=true

}

}

}

————————————————————————————————————————————————————————————————————————————

完整代码

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>

<input type="checkbox">
<input type="checkbox">
<input type="checkbox">
<input type="checkbox">
<input type="checkbox">
<input type="checkbox">
all<input id="all" type="checkbox" onclick="check()">
<button type="button" onclick="fanx()">反选</button>
</body>
<script type="text/javascript">
    var all=document.getElementById("all")
    var box=document.getElementsByTagName("input")

    for (i = 0; i < box.length-1; i++) {
        box[i].onclick = onclike
    }

    //通过变量j来计算有多少选项被选中,如果被选中的个数等于总个数,则全选的checked属性为true
    function onclike2() {
        var j=0
        for (i = 0; i < box.length - 1; i++) {
            if (box[i].checked) {
                j++
            }
        }

        all.checked=(j==box.length-1)
        /*if(j==box.length-1)
        {
            all.checked=true
        }

        else
        {
            all.checked=false
        }*/
    }
   //只要有一个选项未被选择中,则全选属性为false,通过逻辑与的方式将每个选项的布尔值与之前比较
    function onclike()
    {
        var flag=true
        for (i = 0; i < box.length - 1; i++) {
            var ifChecke = box[i].checked
            flag = flag && ifChecke
        }
        all.checked=flag
    }

    function check() {
        for (i = 0; i < box.length-1; i++) {
            box[i].checked = all.checked
        }
    }

    function fanx(){

        for (i = 0; i < box.length-1; i++)
        {
            if(box[i].checked){
                box[i].checked=false
            }
            else
            {
                box[i].checked=true
            }

        }

    }

</script>
</html>
时间: 2024-10-24 02:51:03

checkbox的全选与反选的相关文章

checkbox的全选、反选、多选等操作(js)

以下控件的name属性为DEPT_ID (案例中默认选中的checkbox,全选或者反选,对该控件无影响)//1.全选 function selectAllRight(){ $("input[name='DEPT_ID'").each(function() { $(this).prop("checked", true); }); } //2.反选 function reverseSelectRight(){     $("input[name='DEPT_

通过VBA实现checkbox的全选和反选

checkbox的全选和反选可以通过VBA来控制,这种设计常见于一些交互式报表,代码如下: 1.分成两个IF判断 Private Sub CheckBox1_Click()  ‘checkbox为总控,通过点击它来实现全选或反选 Dim b3 As Integer Dim i As Integer Dim b1 As Range If Sheets(1).CheckBox1.Value Then  ’第一个IF判断为全选的条件时     b3 = Sheets(1).Range("h50&quo

Bootstrap开源包中checkbox的全选和反选

不知为何以前js写的全选和反选功能都不能用了,经过Chrome浏览器控制台查看后,发现并不是不起作用,只是样式没有变化而已.首先先刚放上html代码,省略了别的代码,只含有checkbox: <!-- lang: html -->     <label class="checkbox">         <input class="states" type="checkbox" name="ids"

Exameple014实现html中checkbox的全选,反选和全不选(1)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>实例014</title> </head> <body> <form> <input type="checkbox" name="username[]" value="

listview中的checkbox实现全选、反选、删除的功能

1.布局实现的效果 2.找到该布局文件下的所在的activity,实现的效果 package com.bwie.checkbox_all; import java.util.ArrayList; import java.util.Iterator; import com.bwie.adapter.MyAdapter; import com.bwie.vo.User; import android.os.Bundle; import android.app.Activity; import and

js中checkbox的全选和反选的实现

<head> <meta charset="utf-8"/> <script type="text/javascript"> window.onload=function(){ document.getElementById("unall").onclick=function(){ var hobbys= document.getElementsByName("hobby"); for(va

纯js实现checkbox的全选、反选、全不选

分开:a. 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <input type="checkbox" id="check_all">全选 <inpu

用JavaScript实现CheckBox的全选取消反选,及遮罩层中添加内容

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <style> 7 .c1 { 8 position: fixed; 9 top: 0; 10 right: 0; 11 left: 0; 12 bottom: 0; 13 background

js checkBox的全选,反选,与赋值

//js 数值是否在数组中 Array.prototype.in_array = function(e){ for(i=0;i<this.length;i++){ if(this[i] == e) return true; } return false; } //js数组index Array.prototype.find_str=function(string){ var str = this.join(""); return str.indexOf(string); } va