以下是本人制作的全选/反选 组件,供广大同行参考、指正:

效果如图:

在实现的过程中,全选和全部取消选中这两个功能较为简单,只需用for循环遍历所有复选框为true或false即可。反选也较为简单,也是用for循环遍历一遍,把复选框的值设为当前状态的反向: obox[i].checked=!obox[i].checked; 。难点在于在全选状态下取消一个复选框,要自动识别为没有全选,随即更新全选状态为false。

<html>
<head>
<meta charset="utf-8">
<style>
body,div{margin: 0;padding: 0}
body{font: 16px/1.5 Tahoma;color: #fff;font-weight:bold;text-align: center;line-height: 28px}
#box{margin-top:100px;}
#box1{height: 320;width: 100px;margin: 0 auto;background: #9c3;border:4px solid #439C3A;border-radius: 6px;}
#box2{width: 100px;height: 300px;margin: 0 auto;}
.checkbox{width: 16px;height: 16px;}
label{font: 20px/1.5 Tahoma;font-weight: bold;line-height: 28px}
#all{width: 20px;height: 20px;}
button{background: #9c3;color: #fff;height: 28px;width: 60px;font:18px/1.5 Tahoma;line-height: 15px;border: 2px solid #439C3A; border-radius: 4px;font-weight:bold;cursor: pointer;}
</style>
</head>
<body>
<div id="box">
<div id="box1">
<label><b>全选</b></label><input type="checkbox" id="all"><br><hr>
<div id="box2">
事项1<input type="checkbox" class="checkbox"><br>
事项2<input type="checkbox" class="checkbox"><br>
事项3<input type="checkbox" class="checkbox"><br>
事项4<input type="checkbox" class="checkbox"><br>
事项5<input type="checkbox" class="checkbox"><br>
事项6<input type="checkbox" class="checkbox"><br>
事项7<input type="checkbox" class="checkbox"><br>
事项8<input type="checkbox" class="checkbox"><br>
<hr>
<button id="but1">反 选</button>
</div>
</div>
</div>
</body>
<script type="text/javascript">
var oall=document.getElementById("all"); //获取“全选/取消”复选框
var obox=document.getElementById("box2").getElementsByTagName("input"); //获取各项复选框
var olabel=document.getElementsByTagName("label")[0]; //获取“label”用来更新显示 全选/取消
var obut=document.getElementById("but1"); //获取反选按钮<span style="font-family: Arial, Helvetica, sans-serif;"> </span>
    obut.onclick=function()               //反选
{
var count=0;
for(var i=0;i<obox.length;i++)
{
obox[i].checked=!obox[i].checked;
if(obox[i].checked)
{
count++;
}
}
oall.checked=count==obox.length?true:false;
olabel.innerHTML=oall.checked ? "取消":"全选";
};
</pre><pre name="code" class="html">
     oall.onclick=function(){                //全选
for(var i=0;i<obox.length;i++){
obox[i].checked=this.checked;
}
olabel.innerHTML=oall.checked ? "取消":"全选";
}; 
</pre><pre name="code" class="html">
        var n;
for(var i=0;i<obox.length;i++) //更新“全选/取消”
{
obox[i].onclick=function(){
n=0;
for(var j=0;j<obox.length;j++)
{
if(obox[j].checked)
{
n++;
}
}
oall.checked=n==obox.length?true:false;
olabel.innerHTML=oall.checked ? "取消":"全选";
};
}
</script>
</html>

用javascript实现全选/反选组件的更多相关文章

  1. 表单javascript checkbox全选 反选 全不选

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

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

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

  3. JavaScript、全选反选-课堂笔记

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 用JavaScript实现全选-反选

    实现全选-反选 在日常生活我们会遇到需要全选-反选的地方,其实用JavaScript也能实现. 样式如下所示: 样式代码如下所示: <!DOCTYPE html PUBLIC "-// ...

  5. JavaScript下全选反选的Demo程序里实现checkmeonly函数 DOM

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. Android开发 ---基本UI组件5:监听下拉选项,动态绑定下拉选项、全选/反选,取多选按钮的值,长按事件,长按删除,适配器的使用,提示查询数据,activity控制多按钮

    效果图: 效果描述: 1.当点击 1 按钮后,进入选择城市的页面,会监听到你选中的城市名称:动态为Spinner绑定数据 2.当点击 2 按钮后,进入自动查询数据页面,只要输入首字母,就会动态查找以该 ...

  7. javascript总结41:表格全选反选,经典案例详解

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  8. JavaScript Web API 全选反选案例

    全选反选 全选和反选功能,在开发中可以说是应用得非常多的,以下通过案例分解,学习如何使用JS实现全选反选功能. 该功能可分为如下三大步骤: 1.全选 1.1 获取父checkbox,注册点击事件 1. ...

  9. jQuery全选/反选checkbox

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. 基于nodejs实现js后端化处理

    今天D哥给我提了个问题,"用php执行过js没"?咋一听,没戏~~毕竟常规情况下,js是依赖浏览器运行的.想在php后端采集的同时利用js运行结果并传递给php使用,没戏! 然后回 ...

  2. c与c++中的extern const的区别和联系

    最近复习c++,发现了这个东西. c语言里面,我们在一个.c文件中用const定义了一个全局变量后,可以在另一个.c文件中用extern const来引用,但在c++中在链接的时候会报undefine ...

  3. iOS开发之企业发布无线安装APP

    前提是注册成为企业开发者(¥299),申请到证书并安装到本地,可以正常使用Xcode在IOS移动设备上进行Debug. 首先build看是否报错.如无错 执行下一: 执行Product—Archive ...

  4. Linux查看系统信息命令汇总

    # uname -a # 查看内核/操作系统/CPU信息 # /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算 ...

  5. Android UI开发第四十篇——ScrollTricks介绍

    ScrollTricks是一个开源控件,实现了两个简单功能: 1.Quick Return:向上滑动时,View也向上滑动并且消失,当向下滑动时,View马上出现.例如Google Now的搜索功能. ...

  6. JS文件放在头还是尾

    目前绝大部分的浏览器都是采取阻塞方式(Scripts Block Downloads)加载Javascript文件的:javascript在头部会阻止其他元素并行加载(css,图片,网页):这种机制的 ...

  7. Qt5 从头学(2)--手动构建HelloWold

    在上一篇随笔中已经搭建好了Qt5的的开发环境,并且通过Qt Creator自动构建了一个视窗程序.在这篇文章中我们将手动编写一个HelloWold程序,简单了解一下Qt的构建过程.这里我们不会涉及到Q ...

  8. EventKit 学习(译)

    From:http://docs.xamarin.com/guides/ios/platform_features/introduction_to_eventkit/ 本教程展示了对于如何通过Even ...

  9. java中getBytes方法可能使图片文件产生的问题

    InputStream is = new FileInputStream(fl); ImageInputStream iis = ImageIO.createImageInputStream(is); ...

  10. nodejs中常用加密算法

    在常用的nodejs+express工程中,为了安全在登录及表单传输时,应该都需进行加密传输,目前个人常用到的加密方式有下列几种: 1.Hash算法加密: 创建一个nodejs文件hash.js,输入 ...