• 案例演示

  • 源代码
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
* {
padding: 0;
margin: 0;
} .wrap {
width: 300px;
margin: 100px auto 0;
} table {
border-collapse: collapse;
border-spacing: 0;
border: 1px solid #c0c0c0;
width: 300px;
} th,
td {
border: 1px solid #d0d0d0;
color: #404060;
padding: 10px;
} th {
background-color: #09c;
font: bold 16px "微软雅黑";
color: #fff;
} td {
font: 14px "微软雅黑";
} tbody tr {
background-color: #f0f0f0;
} tbody tr:hover {
cursor: pointer;
background-color: #fafafa;
}
</style>
</head>
<body>
<div class="wrap">
<table>
<thead>
<tr>
<th>
<input type="checkbox" id="j_cbAll"/>
</th>
<th>菜名</th>
<th>饭店</th>
</tr>
</thead>
<tbody id="j_tb">
<tr>
<td>
<input type="checkbox"/>
</td>
<td>红烧肉</td>
<td>田老师</td>
</tr>
<tr>
<td>
<input type="checkbox"/>
</td>
<td>西红柿鸡蛋</td>
<td>田老师</td>
</tr>
<tr>
<td>
<input type="checkbox"/>
</td>
<td>鱼香肉丝</td>
<td>田老师</td>
</tr>
<tr>
<td>
<input type="checkbox"/>
</td>
<td>小葱拌豆腐</td>
<td>田老师</td>
</tr> </tbody>
</table>
</div> <script> var cksAll=document.getElementById('j_cbAll');
var cks = document.getElementById('j_tb').getElementsByTagName("input");
cksAll.onclick=function() {
for (var i = 0; i < cks.length; i++) {
cks[i].checked=this.checked; }
}; for(var i=0;i<cks.length;i++){
cks[i].onclick=function(){
var flag=true;
for(var j=0;j<cks.length;j++){
if(!cks[j].checked){
flag=false;
break;
}
}
cksAll.checked=flag;
};
}
</script>
</body>
</html>

全选和不全选》.html

 
  • 具体实现 
  • 思想方法

//全选:点击全选按钮,其他的小按钮都选中,说明小按钮的状态是跟着全选按钮而变化的

//不全选:小按钮有一个没选择,全选不选中

  • 核心代码

      //获取全选按钮
    var cksAll=my$("j_cbAll");
    //获取其他小按钮
    var cks = my$("j_tb").getElementsByTagName("input");
    //实现点击全选按钮,小按钮的状态跟着全选按钮变化
    cksAll.onclick=function() {
    for (var i = 0; i < cks.length; i++) {
    cks[i].checked=this.checked; }
    };

    //遍历每一个小按钮
    for(var i=0;i<cks.length;i++){
    //为每一个按钮注册点击事件
    cks[i].onclick=function(){
    //开始默认全都选中
    var flag=true;
    for(var j=0;j<cks.length;j++){
    //循环过程中如果有一个小按钮没被选中,就将flag=false,并且此时不需要继续遍历了
    if(!cks[j].checked){
    flag=false;
    break;
    }
    }
    //全选按钮状态和flag相同
    cksAll.checked=flag;
    };
    }

原生JS实现全选和不全选的更多相关文章

  1. 原生JS实现全屏切换以及导航栏滑动隐藏及显示——重构前

    思路分析: 向后滚动鼠标滚轮,页面向下全屏切换:向前滚动滚轮,页面向上全屏切换.切换过程为动画效果. 第一屏时,导航栏固定在页面顶部,切换到第二屏时,导航条向左滑动隐藏.切换回第一屏时,导航栏向右滑动 ...

  2. 原生JS实现全选,反选

    无样式,比较丑 <!DOCTYPE html><html><head><meta charset="UTF-8"><title ...

  3. js实现CheckBox全选或者不全选

    <html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">< ...

  4. jQuery给CheckBox全选与不全选

    $(function(){ $("#checkAll").click(function() {//全选 $('input[name="DATA"]').prop ...

  5. jquery全选或不全选时,不操作已经禁用的checkbox

    $("#selectAll").click(function(){ if(this.checked ){ $(":checkbox[name='equid']" ...

  6. jquery 取消全选和全选功能 不全选

    代码如下 function ckSelectAll() { if ($('#ckSelectAll').is(':checked') == true) { $("INPUT[name='ch ...

  7. 原生js的联动全选

    开发应用中有很多工具可以使用,下面介绍一个原生js写的联动全选思路!!! <!DOCTYPE html> <html lang="en"> <head ...

  8. JS实现全选、反选、不选

    JS实现全选.反选.不选 效果图: 代码如下,复制即可使用: <!DOCTYPE html> <html> <head> <meta charset=&quo ...

  9. JS checkbox 全选 全不选

    /* JS checkbox 全选 全不选 Html中checkbox: <input type="checkbox" name="cbx" value= ...

随机推荐

  1. mybatis:数据持久层框架

    mybatis是一个持久层的框架,是Apache下的顶级项目. mybatis托管到goolecode下,再后来托管到GitHub下:https://github.com/mybatis/mybati ...

  2. LODOP打印安装到win的特殊字体

    LODOP能够打印的字体,来源于安装到本机windows里字体库的字体,如果需要打印特别的字体,需要在该操作系统安装.由于web网站的用户千差万别,字体库也有不同,但是一般常见的字体都是有的,因此做模 ...

  3. 使用proxychains 代理终端

    最近在国外的vps上搭建了一个ss服务器,在浏览器里面设置socks5代理上网很方便, 但是终端里面却只支持http方式的代理配置,网上有socks转http代理的方式,但是最近发现一个更为简单的方式 ...

  4. 我对领域驱动设计(DDD)的学习成果

    领域驱动设计之领域模型 2004年Eric Evans发表Domain-Driven Design – Tackling Complexity in the Heart of Software (领域 ...

  5. [开源 .NET 跨平台 Crawler 数据采集 爬虫框架: DotnetSpider] [一] 初衷与架构设计

    [DotnetSpider 系列目录] 一.初衷与架构设计 二.基本使用 三.配置式爬虫 四.JSON数据解析与配置系统 五.如何做全站采集 为什么要造轮子 同学们可以去各大招聘网站查看一下爬虫工程师 ...

  6. 三种bean创建方式

  7. iOS WKWebView全屏浏览网页返回 状态栏问题

    问题: 用这个方法隐藏显示状态栏,总是带有残余 过一会才能消失掉 [[UIApplication sharedApplication]setStatusBarHidden:YES]; 可以切换状态栏的 ...

  8. LTI系统对WSS Processes的作用

    本文主要专注讨论LTI系统对WSS Process的影响.WSS Process的主要特性有mean以及correlation,其中correlation特性在滤波器设计,信号检测,信号预测以及系统识 ...

  9. Ionic3报错Error: Uncaught (in promise): Error: StaticInjectorError

    ERROR Error: Uncaught (in promise): Error: StaticInjectorError[Geolocation]: StaticInjectorError[Geo ...

  10. 「SPOJ6340」「BZOJ1939」ZUMA - ZUMA【记忆化搜索】

    题目链接 [洛谷传送门] 题解 \(f[i][j][k]\)表示在消除了\((i,j)\),在后面加上了\(k\)个珠子的总的珠子数. 考虑三种决策:(题目给出的\(k\)在下文表示成\(K\)) 决 ...