用angular实现多选按钮的全选与反选实例代码


Posted in Javascript onMay 23, 2017

在页面中我们常常会遇到多选框,例如购物车里的商品

下面用angular来实现这一功能

<!DOCTYPE html> 
<html> 
<head lang="en"> 
  <meta charset="UTF-8"> 
  <title></title> 
  <script src="js/angular.min.js"></script> 
</head> 
<body ng-app="select" ng-controller="moreSel"> 
 
全选: <input type="checkbox" ng-checked="checks" ng-click="checks = !checks; all(checks)"> 
<!--track by $index去掉也可以--> 
<div ng-repeat="item in datas track by $index"> 
<input type="checkbox" ng-checked="chkItem[$index]" ng-click="ck(chkItem[$index]==undefind?false:chkItem[$index], item, $index)">{{ item }} 
</div> 
<pre>{{arr}}</pre> 
</body> 
 
<script> 
  //创建模块 
  angular.module("select", []) 
      //控制器 
      .controller("moreSel", function ($scope) { 
        $scope.datas = ["C++","Html","Javascript"]; 
        $scope.arr = [];//用来显示选中的内容 
        //用来标志每一项的状态 
        $scope.chkItem = []; 
 
        //全选 
        $scope.all = function (checks) { 
          //初始化设置状态 
          init(checks); 
          //将选中的内容赋值到数组中 
          if(checks) { 
            for(var i = 0; i < $scope.datas.length; i++) { 
              $scope.arr[i] = $scope.datas[i]; 
            } 
          }else { 
            $scope.arr = []; 
          } 
        } 
 
        //点击选择 
        $scope.ck = function (state, item, index) { 
          //取状态的相反值 
          $scope.chkItem[index] = !state; 
          //有一个为false则全选按钮为不选中 
          if(!$scope.chkItem[index]){ 
            $scope.checks = false; 
 
            //取消选中,将数值从arr数组中删除掉 
            var num = $scope.arr.indexOf(item); 
            $scope.arr.splice(num, 1); 
          }else { 
            //选中追加进去 
            $scope.arr.push(item); 
            for(var i = 0; i < $scope.datas.length; i++) { 
              //只要有一个按钮没有选中 
              if(!$scope.chkItem[i]){ 
                return; 
              } 
            } 
            //全部选中 
            $scope.checks = true; 
          } 
        } 
 
        //初始化 
        var init = function (sel) { 
          for(var i = 0; i < $scope.datas.length; i++) { 
            //sel没有值 默认初始化false 
            $scope.chkItem[i] = sel || false; 
          } 
        } 
      }); 
</script> 
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
静态的动态续篇之来点XML
Aug 15 Javascript
ExtJS Window 最小化的一种方法
Nov 18 Javascript
jQuery 学习6 操纵元素显示效果的函数
Feb 07 Javascript
Extjs Ext.MessageBox.confirm 确认对话框详解
Apr 02 Javascript
jquery 操作DOM案例代码分享
Apr 05 Javascript
利用a标签自动解析URL分析网址实例
Oct 20 Javascript
JS+CSS实现经典的左侧竖向滑动菜单效果
Sep 23 Javascript
分享几种比较简单实用的JavaScript tabel切换
Dec 31 Javascript
jQuery代码实现对话框右上角菜单带关闭×
May 03 Javascript
js HTML5 Canvas绘制转盘抽奖
Sep 13 Javascript
JavaScript和jQuery获取input框的绝对位置实现方法
Oct 13 Javascript
解决js相同的正则多次调用test()返回的值却不同的问题
Oct 10 Javascript
详解vue嵌套路由-params传递参数
May 23 #Javascript
详解vue嵌套路由-query传递参数
May 23 #Javascript
vue-router 中router-view不能渲染的解决方法
May 23 #Javascript
angular+webpack2实战例子
May 23 #Javascript
jquery实现图片轮播器
May 23 #jQuery
详解用node编写自己的cli工具
May 23 #Javascript
JavaScript 巧学巧用
May 23 #Javascript
You might like
sony ICF-2010 拆解与改装
2021/03/02 无线电
Dedecms常用函数解析
2008/02/01 PHP
php+js实现百度地图多点标注的方法
2016/11/30 PHP
yii框架搜索分页modle写法
2016/12/19 PHP
HTML5如何适配 iPhone IOS 底部黑条
2021/03/09 HTML / CSS
使用TextRange获取输入框中光标的位
2006/10/14 Javascript
根据一段代码浅谈Javascript闭包
2010/12/14 Javascript
表单的焦点顺序tabindex和对应enter键提交
2013/01/04 Javascript
Web跨浏览器进程通信(Web跨域)
2013/04/17 Javascript
JS如何将UTC格式时间转本地格式
2013/09/04 Javascript
jQuery中阻止冒泡事件的方法介绍
2014/04/12 Javascript
js css 实现遮罩层覆盖其他页面元素附图
2014/09/22 Javascript
详解AngularJS中的表格使用
2015/06/16 Javascript
全屏滚动插件fullPage.js使用实例解析
2016/10/21 Javascript
原生javascript移动端滑动banner效果
2017/03/10 Javascript
vuejs 切换导航条高亮(路由菜单高亮)的方法示例
2018/05/29 Javascript
JS深入学习之数组对象排序操作示例
2020/05/01 Javascript
原生js实现无缝轮播图效果
2021/01/28 Javascript
[00:08]DOTA2勇士令状等级奖励“天外飞星”
2019/05/24 DOTA
[59:48]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第一场 1月26日
2021/03/11 DOTA
[32:30]夜魇凡尔赛茶话会 第一期01:谁是卧底
2021/03/11 DOTA
Python读写配置文件的方法
2015/06/03 Python
python读写ini配置文件方法实例分析
2015/06/30 Python
浅谈python字典多键值及重复键值的使用
2016/11/04 Python
python读取文本中数据并转化为DataFrame的实例
2018/04/10 Python
Python实现的NN神经网络算法完整示例
2018/06/19 Python
python批量创建指定名称的文件夹
2019/03/21 Python
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
django美化后台django-suit的安装配置操作
2020/07/12 Python
利用CSS的Sass预处理器(框架)来制作居中效果
2016/03/10 HTML / CSS
电大毕业生自我鉴定
2013/11/10 职场文书
教师对学生的寄语
2014/04/03 职场文书
活动总结范文
2014/08/30 职场文书
Win11运行育碧游戏总是崩溃怎么办 win11玩育碧游戏出现性能崩溃的解决办法
2022/04/06 数码科技
Java工作中实用的代码优化技巧分享
2022/04/21 Java/Android
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
2022/07/15 Java/Android