angular实现表格的全选、单选、部分删除以及全部删除
昨天自己写了一小段js,在全选的时候有点儿小坑,然后,整理了一下。今天把它贴出来,希望以后还记得。
大家也可以去github上查看或下载:https://github.com/dreamITGirl/projectStudy/tree/master/html
我在用angular实现表格的全选时,是给了一个标记--就是一个空数组,每次有个别项选中,我都会push一个数字,当有选项从选中状态到未选中变化时,我就让该数组弹出一个数字。这样就可以实现了。我实现的个别删除和全部删除是从页面删除的,并没有操作json对象,因此,在真正项目中使用的话,还需要加上ajax请求,同时删除服务器上的数据。
代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>表格的全选,删除</title>
<link rel="stylesheet" href="../css/bootstrap.min.css"/>
<style type="text/css">
table th {
text-align: center;
} input[type="checkbox"] {
width: 20px;
height: 20px;
}
</style>
</head>
<body ng-app="myApp" ng-controller="myCtrl">
<table border="" cellspacing="" cellpadding="" class="table" style="text-align: center;">
<tr>
<th><input type="checkbox" ng-model="selectedAll" ng-click="selectAll()"/></th>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
<th>民族</th>
<th ng-click="delAll($event)" style="cursor:pointer">全部删除</th>
</tr>
<tr ng-repeat="item in items">
<td><input type="checkbox" ng-model="item.states" ng-change="selectOne(item.states)"/></td>
<td>{{item.name}}</td>
<td>{{item.age}}</td>
<td>{{item.sex}}</td>
<td>{{item.national}}</td>
<td ng-click="del($event)" style="cursor: pointer">删除</td>
</tr>
</table>
<script type="text/javascript" src="../js/jquery-2.1.3.min.js"></script>
<script type="text/javascript" src="../js/angular.js"></script>
<script type="text/javascript">
var app = angular.module("myApp", []);
app.controller("myCtrl", function ($scope, $http) {
//设置默认为表格非全选
$scope.selectedAll = false;
$scope.state = [];
$http({
method: "GET",
url: "http://localhost:63342/projectStudy/json/selected.json"
}).then(function successCallback(response) {
console.log(response);
$scope.items = response.data.dataList;
}, function errorCallback(response) {
console.log(response)
});
//全选
$scope.selectAll = function () {
for (var i = 0; i < $scope.items.length; i++) {
if ($scope.selectedAll) {
$scope.items[i].states = true;
$scope.state = [1, 1, 1, 1, 1]; } else {
$scope.state = [];
$scope.items[i].states = false;
}
console.log($scope.state)
}
};
//单选
$scope.selectOne = function (m) { if (m == true) {
$scope.state.push(1);
console.log($scope.state.length);
if ($scope.state.length == $scope.items.length) {
$scope.selectedAll = true
} else {
$scope.selectedAll = false;
}
console.log($scope.state);
} else {
console.log(m);
$scope.state.pop(1);
$scope.changed(m);
}
};
$scope.changed = function (a) {
if (a == true) {
$scope.state.push(1); console.log($scope.state.length);
if ($scope.state.length == $scope.items.length) {
$scope.selectedAll = true
} else {
$scope.selectedAll = false;
}
} else {
console.log(a);
$scope.selectedAll = false;
}
}
//删除单个选项
$scope.del = function (event) {
//样式的删除
console.log($(event.target).parent().html());
$(event.target).parent().remove();
}
//删除全部选项
$scope.delAll = function (event) {
if ($scope.selectedAll == true) {
// console.log( $(event.target).siblings().html())
$(event.target).parent().siblings().remove();
$scope.selectedAll = false;
} else {
alert('尚未选择要删除的项')
}
} })
</script>
</body>
</html>
angular实现表格的全选、单选、部分删除以及全部删除的更多相关文章
- JS中表格的全选和删除要注意的问题
在项目开发中,由于刚刚开始做项目,我对js还不是很精通,所以在用js对表格的全选和删除中遇到了不少问题,后来通过查找资料解决了,之后总结了一下关于js表格的全选和删除出现的一些问题,希望能帮助到大家. ...
- vue开发购物车,解决全选单选问题
实现全选单选,在vue中无法通过this获取input中的checkbox的checked属性,但是可以通过vue对input的特殊方式v-model来实现对应数据的绑定,同样也可以通过这种方式实现购 ...
- ElementUi 表格取消全选框,用文字表示
Echarts ElementUi 表格取消全选框,用文字表示 1.先看看实现的图 一. 添加添加复选框列 <el-table v-loading="zongShipLoading&q ...
- DataTable添加checkbox实现表格数据全选,单选(点选)
Datatables是一款jquery表格插件.它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能. 分页,即时搜索和排序 几乎支持任何数据源:DOM, javascript, Ajax ...
- 邮箱性质--全选单选的操作和传值 用属性的name传值
封装类 using System; using System.Collections.Generic; using System.Web; /// <summary> /// Ha 的摘要 ...
- vue-实现全选单选
在获取列表页面数据时,通过forEach遍历存储数据的对象,给对象中添加一个selected变量,值为布尔值. 点击全选时,通过遍历将对象中selected的布尔值改变 点击单选时,被点中的通过筛选加 ...
- JQuery实现表格的全选和反选,以及分页勾选保存(laypage插件分页的使用)
需求: 1.全选与取消全选 2.单个勾选,点击表格单元格中checkbox勾选,也可以在点击行勾选,便与用户操作 3.分页勾选保存 4.固定表头 功能一: 说明:操作全选按钮的同时,遍历每一个tr中的 ...
- checkbox 全选 单选的使用
绑定数据 if (!IsPostBack) { using (UsersDataContext con = new UsersDataContext()) { Repeater1.DataSource ...
- element-ui 里面el-checkbox多选框,实现全选单选
data里面定义了 data:[], actionids:[],//选择的那个actionid num1:0,//没选择的计数 num2:0,//选中的计数 ...
随机推荐
- Vue:实践学习笔记(6)——使用SLOT分发内容
Vue:实践学习笔记(6)——使用SLOT分发内容 Slot Slot是什么 Slot是父子组件的通讯方式,可以将父组件的内容显示到子组件之中. 使用SLOT前 比如我在定义组件的时候,在里面输入了X ...
- ajax进度条
.graph { width: 400px; height: 25px; border: 1px solid #f8b3d0; } .bar { background-color: #ffe7f4; ...
- P3746 [六省联考2017]组合数问题
P3746 [六省联考2017]组合数问题 \(dp_{i,j}\)表示前\(i\)个物品,取的物品模\(k\)等于\(r\),则\(dp_{i,j}=dp_{i-1,(j-1+k)\%k}+dp_{ ...
- windows server 2008 r2 下发布网站excel有时候无法下载文档
最近将公司网站服务器更新了系统,从win2003 到 win2008 r2 (64bit),一切正常,但是使用网站的过程中发现了一个比较奇怪的问题,就是,有时候网站的excel文档无法下载,但是我什么 ...
- 郝健: Linux内存管理学习笔记-第1节课【转】
本文转载自:https://blog.csdn.net/juS3Ve/article/details/80035751 摘要 MMU与分页机制 内存区域(内存分ZONE) LinuxBuddy分配算法 ...
- java进程分析
1. 找出 java进程pid,比如 11327 2. 使用jstack 看下 锁持有情况 /usr/java/latest/bin/jstack -l 11327 3. 输出java堆栈信息,以及 ...
- sphinx 全文搜索引擎
sphinx的安装与配置 --------------------------------------------------------------------------------------- ...
- swift的泛型貌似还差点意思
protocol Container { typealias ItemType mutating func append(item: ItemType) mutating func removelas ...
- C语言中mktime函数功能及用法
今天联系写一个日历的程序,需要算出月份中的第一天是星期几,用到了mktime()这个函数,感觉这个函数挺有用的,分享给大家. 原型:time_t mktime(struct tm *) 其中的tm结构 ...
- Gym:101630J - Journey from Petersburg to Moscow(最短路)
题意:求1到N的最短路,最短路的定义为路径上最大的K条边. 思路:对于每种边权,假设为X,它是第K大,那么小于X的变为0,大于K的,边权-X.然后求最短路,用dis[N]+K*X更新答案. 而小于K的 ...