用javascript实现全选/反选组件
以下是本人制作的全选/反选 组件,供广大同行参考、指正:
效果如图:
在实现的过程中,全选和全部取消选中这两个功能较为简单,只需用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实现全选/反选组件的更多相关文章
- 表单javascript checkbox全选 反选 全不选
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...
- JavaScript 实现全选 / 反选功能
JavaScript 实现全选 / 反选功能 版权声明:未经授权,内容严禁转载! 构建主体界面 编写 HTML 代码 和 CSS 代码,设计主题界面 <style> #user { wid ...
- JavaScript、全选反选-课堂笔记
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 用JavaScript实现全选-反选
实现全选-反选 在日常生活我们会遇到需要全选-反选的地方,其实用JavaScript也能实现. 样式如下所示: 样式代码如下所示: <!DOCTYPE html PUBLIC "-// ...
- JavaScript下全选反选的Demo程序里实现checkmeonly函数 DOM
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Android开发 ---基本UI组件5:监听下拉选项,动态绑定下拉选项、全选/反选,取多选按钮的值,长按事件,长按删除,适配器的使用,提示查询数据,activity控制多按钮
效果图: 效果描述: 1.当点击 1 按钮后,进入选择城市的页面,会监听到你选中的城市名称:动态为Spinner绑定数据 2.当点击 2 按钮后,进入自动查询数据页面,只要输入首字母,就会动态查找以该 ...
- javascript总结41:表格全选反选,经典案例详解
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- JavaScript Web API 全选反选案例
全选反选 全选和反选功能,在开发中可以说是应用得非常多的,以下通过案例分解,学习如何使用JS实现全选反选功能. 该功能可分为如下三大步骤: 1.全选 1.1 获取父checkbox,注册点击事件 1. ...
- jQuery全选/反选checkbox
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
随机推荐
- 基于nodejs实现js后端化处理
今天D哥给我提了个问题,"用php执行过js没"?咋一听,没戏~~毕竟常规情况下,js是依赖浏览器运行的.想在php后端采集的同时利用js运行结果并传递给php使用,没戏! 然后回 ...
- c与c++中的extern const的区别和联系
最近复习c++,发现了这个东西. c语言里面,我们在一个.c文件中用const定义了一个全局变量后,可以在另一个.c文件中用extern const来引用,但在c++中在链接的时候会报undefine ...
- iOS开发之企业发布无线安装APP
前提是注册成为企业开发者(¥299),申请到证书并安装到本地,可以正常使用Xcode在IOS移动设备上进行Debug. 首先build看是否报错.如无错 执行下一: 执行Product—Archive ...
- Linux查看系统信息命令汇总
# uname -a # 查看内核/操作系统/CPU信息 # /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算 ...
- Android UI开发第四十篇——ScrollTricks介绍
ScrollTricks是一个开源控件,实现了两个简单功能: 1.Quick Return:向上滑动时,View也向上滑动并且消失,当向下滑动时,View马上出现.例如Google Now的搜索功能. ...
- JS文件放在头还是尾
目前绝大部分的浏览器都是采取阻塞方式(Scripts Block Downloads)加载Javascript文件的:javascript在头部会阻止其他元素并行加载(css,图片,网页):这种机制的 ...
- Qt5 从头学(2)--手动构建HelloWold
在上一篇随笔中已经搭建好了Qt5的的开发环境,并且通过Qt Creator自动构建了一个视窗程序.在这篇文章中我们将手动编写一个HelloWold程序,简单了解一下Qt的构建过程.这里我们不会涉及到Q ...
- EventKit 学习(译)
From:http://docs.xamarin.com/guides/ios/platform_features/introduction_to_eventkit/ 本教程展示了对于如何通过Even ...
- java中getBytes方法可能使图片文件产生的问题
InputStream is = new FileInputStream(fl); ImageInputStream iis = ImageIO.createImageInputStream(is); ...
- nodejs中常用加密算法
在常用的nodejs+express工程中,为了安全在登录及表单传输时,应该都需进行加密传输,目前个人常用到的加密方式有下列几种: 1.Hash算法加密: 创建一个nodejs文件hash.js,输入 ...