我们经常会在网站上遇到一些多选的情况,下面我就来说说使用Dom写全选反选的思路。

全选思路:
首先,我们来分析一下知道,当我们点击"全选"复选框的时候,所有的复选框应该都被选中,那我们就可以给"全选"复选框注册一个事件,就是如果全选按钮被选中的话,那么其他所有复选框都被选中;然后就是其他复选框部分选中或全不选中,那么"全选"复选框不选中。

反选思路:
我们知道,当我们点击反选按钮,那么就把除"全选"之外的所有复选框的选中状态取反(之前选中的为不选中,之前不选中的为选中),在根据这些复选框的选中状态来判断"全选"是否选中。

<html>
<head>
<title></title>
<script type="text/javascript">
function f1(){
var gender=document.getElementsByName("sex");
for(var i=;i<gender.length;i++){
if(gender[i].checked){
alert(gender[i].value);
break;
}
}
} function checkAll(){
var checkAll=document.getElementById("checkAll");
var checkboxs=document.getElementsByTagName("input");
for(var i=;i<checkboxs.length;i++){
if(checkboxs[i].type=="checkbox"&&checkboxs[i].id!="checkAll"){
checkboxs[i].checked=checkAll.checked;
}
}
} window.onload=function(){
var checkboxs=document.getElementsByTagName("input");
for(var i=;i<checkboxs.length;i++){
if(checkboxs[i].type=="checkbox"&&checkboxs[i].id!="checkAll"){
//给子checkbox动态注册事件
checkboxs[i].onclick=function(){
//定义一个变量记录"全选"checkbox的选中状态,默认为选中
var isCheckAll=true;
for(var j=;j<checkboxs.length;j++){
//过滤出不是checkbox和全选的控件
if(checkboxs[j].type=="checkbox"&&checkboxs[j].id!="checkAll"){
//判断子checkbox控件是否选中
if(!checkboxs[j].checked){
//只要有一个checkbox控件没有选中,那么全选checkbox就不选中
isCheckAll=false;
}
}
}
document.getElementById("checkAll").checked=isCheckAll;
}
}
}
} function reCheck(){
var checkboxs=document.getElementsByTagName("input");
for(var i=;i<checkboxs.length;i++){
if(checkboxs[i].type=="checkbox"&&checkboxs[i].id!="checkAll"){
checkboxs[i].checked=!checkboxs[i].checked;
}
} var isCheckAll=true;
for(var i=;i<checkboxs.length;i++){
if(checkboxs[i].type=="checkbox"&&checkboxs[i].id!="checkAll"){
if(!checkboxs[i].checked){
isCheckAll=false;
}
}
}
document.getElementById("checkAll").checked=isCheckAll;
} </script>
</head>
<body>
<input type="radio" value="nan" name="sex"/>男
<input type="radio" value="nv" name="sex"/>女<br/>
<input type="button" value="性别" onclick="f1()"/><br/> <input id="checkAll" type="checkbox" onclick="checkAll()"/>全选<br/>
<input id="check1" type="checkbox" value="chifan"/>吃饭<br/>
<input id="check2" type="checkbox" value="shuijiao"/>睡觉<br/>
<input id="check3" type="checkbox" value="dadoudou"/>打豆豆<br/>
<input id="reCheck" type="button" value="反选" onclick="reCheck()"/><br/>
</body>
</html>

Dom操作--全选反选的更多相关文章

  1. jQuery全选反选实例

    1. $('#tb:checkbox').each(function(){ 每次都会执行 全选-取消操作,注意$('#tb :checkbox').prop('checked',true); tb后面 ...

  2. jQuery之标签操作和返回顶部、登录验证、全选反选、克隆示例

    一.样式操作 1.JQ中的样式类 somenode.addClass();// 添加指定的CSS类名. somenode.removeClass();// 移除指定的CSS类名. somenode.h ...

  3. jquery、js操作checkbox全选反选

    全选反选checkbox在实际应用中比较常见,本文有个不错的示例,大家可以参考下 操作checkbox,全选反选//全选 function checkAll() { $('input[name=&qu ...

  4. DOM操作复选框

    DOM操作复选框 实现一个效果如下图: 点击"全选/全不选"复选框之后,足球.篮球.游泳和唱歌均被选取.取消"全选/全不选"复选框之后,被选中的所有都变成未选中 ...

  5. jquery、js全选反选checkbox

    操作checkbox,全选反选 //全选 function checkAll() { $('input[name="TheID"]').attr("checked&quo ...

  6. JavaScript 实现全选 / 反选功能

    JavaScript 实现全选 / 反选功能 版权声明:未经授权,内容严禁转载! 构建主体界面 编写 HTML 代码 和 CSS 代码,设计主题界面 <style> #user { wid ...

  7. jQuery全选反选插件

    (function($){ $.fn.check = function(options){ var options = $.extend({ element : "input[name='n ...

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

    页面点击按钮添加一行    删除一行   全选   反选  全不选 页面效果图如下 html页面代码 <!DOCTYPE html> <html> <head> & ...

  9. JQuery 全选 反选 获取Table 中指定td的元素值

    //全选 function initTableCheckbox() { var $thr = $('table thead tr'); var $checkAllTh = $('<th>& ...

随机推荐

  1. Sharepoint数据库存储过程

    转:http://dugan.bokee.com/630497.html Databases Table Stored Procedures(数据库表存储过程) Globals Table Store ...

  2. linux文件属性详解

    Linux 文件或目录的属性主要包括:文件或目录的节点.种类.权限模式.链接数量.所归属的用户和用户组.最近访问或修改的时间等内容.具体情况如下: 命令: ls -lih 输出: [root@loca ...

  3. oracle 中v$sqlarea,v$sql,v$session,gv$session,远程连接等问题

    一.分析 (1)使用 least recently used (LRU) algorithm 来管理的,不用的自动踢出,可以使用keep 将需要的语句 保存在 library cache中. 所以应该 ...

  4. Drupal安装及使用问题解决列表

    #1. 启动 Clean URL 修改Apache的配置文件(如httpd.conf),打开 LoadModule rewrite_module modules/mod_rewrite.so选项.然后 ...

  5. HW4.4

    public class Solution { public static void main(String[] args) { final double KILOMETERS_PER_MILE = ...

  6. 算法导论学习-heapsort

    heap的定义:如果数组a[1,....n]满足:a[i]>a[2*i] && a[i]>a[2*i+1],1<=i<=n/2,那么就是一个heap,而且是ma ...

  7. hdoj 1465 不容易系列之一

    转 原文网址   http://blog.csdn.net/liwen_7/article/details/7646451 错排问题 错排问题 就是一种递推式,不过它比较著名且常用,所以要熟记! 方法 ...

  8. Google正确搜索方法

    以下是目前所有的Google搜索命令语法,它不同于Google的帮助文档,因为这里介绍了几个Google不推荐使用的命令语法.大多数的Google搜索命令语法有它特有的使用格式,希望大家能正确使用.我 ...

  9. java中服务器启动时,执行定时任务

    package com.ripsoft.util; import java.util.Calendar; import java.util.Timer; import javax.servlet.Se ...

  10. 11.编写一个Java程序,计算半径为3.0的圆周长和面积并输出结果。把圆周率π定义为常量,半径定义为变量,然后进行计算并输出结果。

    package com.hanqi.yzljs; public class yzljs { public static void main(String[] args) {     final dou ...