checkbox 全选,反选 ,全不选

在表格或者列表中经常会遇到要全选或者反选等交互,今天总结了一下代码,保留着以后直接拿来用

原理:

1.
全选:当全选checkbox被点击(不管点击之前是什么状态)后,获取其checked状态。然后对列表进行循环检测,此时可以将所有的(无论之前什么状态),设为选中,也可对未选中的进行选中。

2.
反选:当反选checkbox被点击(不管点击之前是什么装填)后,获取其其状态值,对列表进行循环检测,将被检测的元素的checked状态反向处理,即可。

3.
列表全选或者不全选:当列表中的任意一个checkbox被点击,侧应该对列表中的所有checkbox进行循环检测,如果此时全部选中,则应将全选checked选中,如果有至少一个没被选中,则应将全选checkbox取消选中。

代码实现:

为了测试代码的正确性,建立如下的HTML文档:

<!DOCTYPE html>

<html>

<head>

<title>checkbox测试</title>

</head>

<body>

<table>

<tr>

<td><input
type="checkbox" id="allChecked"><span>全选</span></td>

     <td><input type="checkbox"
id="antiChecked"><span>全选</span></td>

</tr>

<tr>

<td><input
type="checkbox"  class="sonChecked"></td>

<td>1</td>

</tr>

<tr>

<td><input
type="checkbox"  class="sonChecked"></td>

<td>2</td>

</tr>

<tr>

<td><input
type="checkbox"  class="sonChecked"></td>

<td>3</td>

</tr>

</tr>

<td><input
type="checkbox"  class="sonChecked"></td>

<td>4</td>

</tr>

<tr>

<td><input
type="checkbox"  class="sonChecked"></td>

<td>5</td>

</tr>

</table>

</body>

</html>

//全选(id="allChecked")  反选(id="antiChecked") 选项列表(class="sonChecked")
选择使用id,class, name等属性作为选择器都可以,根据自己的文档来确定。

//javascript代码(原生的)

//条件检测,兼容性

if(!document.getElementById) return;

var allCheck         =
 document.getElementById(‘allChecked‘);

var antiCheck      =
document.getElementById(‘antiChecked‘);

//条件检测,兼容性

if(!document.getElementsByClassName) return;

var sonChecks   =
 document.getElementsByClassName(‘sonChecked‘);

//全选操作

allCheck.click = function(){

  var allCheckState = allCheck.checked;

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

    if(listChecks[i].checked!=allCheckState){

      listChecks[i].click();

    }

  }

}

//反选操作

antiCheck.click= function(){

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

    listChecks[i].click();

  }

}

//列表项行为

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

  listChecks[i].click= function(){

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

      if(!listChecks[i].checked){

        allCheck.checked = false;

        return;

      }

    }

allCheck.checked = true;

}

}

//也可以将这几个方法直接封装成函数,然后传入参数,直接调用,但如果是这样的话不建议在HTML里面使用
onchange="function(A,B)"之类的,应该将javascript与HTML分离。

checkbox 全选,反选 ,全不选,布布扣,bubuko.com

时间: 2025-01-05 00:45:23

checkbox 全选,反选 ,全不选的相关文章

表单javascript checkbox全选 反选 全不选

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>javascript checkbox全选 反选 全不选</title> <meta name="des

【HTML5】页面点击按钮添加一行 删除一行 全选 反选 全不选

页面点击按钮添加一行    删除一行   全选   反选  全不选 页面效果图如下 html页面代码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="bootstrap-3.3.7-dist/css/bootstrap.css" /> <script type=&qu

checkbook全选/反选/全不选

<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body><ul id="list"> <li><label><input type="checkbox"

js实现全选,反选,全不选

思路:1.获取元素.2.用for循环历遍数组,把checkbox的checked设置为true即实现全选,把checkbox的checked设置为false即实现不选.3.通过if判断,如果checked为true选中状态的,就把checked设为false不选状态,如果checked为false不选状态的,就把checked设为true选中状态. js代码 <script> window.onload=function(){ var CheckAll=document.getElementB

表单全选反选全不选

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>请输入关键词</title> <script type="text/javascript" src="js/jquery.min.js"></script> </head><bod

复选框的 全选 反选 全不选

//全选 $("#btn1").click(function(){ $("input[name='FORM_COLUMNS']").prop("checked",true); }); //取消全选 $("#btn2").click(function(){ $("input[name='FORM_COLUMNS']").prop("checked",false); }); //反选 $(&

jQuery如何实现复选框全选和全不选

jQuery如何实现复选框全选和全不选: 在网页中经常有复选框的全选和全不选效果,比如在后台新闻管理.用户空间信息管理等都有用到,下面就提供一个jQuery实现的此效果.代码实例如下: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name=&quo

jQuery复选框全选全不选代码

<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="author" content="http://www.51texiao.cn/" /><title>jQuery复选框全选全不选代码<

jquery checkbox的相关操作——全选、反选、获得所有选中的checkbox

jquery checkbox的相关操作——全选.反选.获得所有选中的checkbox 1.全选 $("#btn1").click(function(){ $("input[name='checkbox']").attr("checked","true"); }) 2.取消全选(全不选) $("#btn2").click(function(){ $("input[name='checkbox']&

利用jQuery实现CheckBox全选/全不选/反选

转自:http://www.cnblogs.com/linjiqin/p/3148259.html jQuery有些版本中实现CheckBox全选/全不选/反选会有bug,经测试jquery-1.3.1.js–>测试通过,jquery-1.5.1.js–>测试不通过. 实现CheckBox全选/全不选/反选代码如下: <%@ page language="java" pageEncoding="UTF-8"%>   <!DOCTYPE