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>

原文地址:https://www.cnblogs.com/bllx/p/8925736.html

时间: 2024-09-29 17:34:01

angular实现表格的全选、单选、部分删除以及全部删除的相关文章

JS中表格的全选和删除要注意的问题

在项目开发中,由于刚刚开始做项目,我对js还不是很精通,所以在用js对表格的全选和删除中遇到了不少问题,后来通过查找资料解决了,之后总结了一下关于js表格的全选和删除出现的一些问题,希望能帮助到大家. 以下是我自己做的一个小例子,用来更简单明了的说明js全选和删除. 一.全选的说明:当选中全选的checkbox时,下面1-5都会选中,没有选中时1-5都不会选中,这个实现不难,步骤如下: 1.获取全选框的选中状态, 2.for循环设置所有的单选框的选中状态 主要代码: //1.获取全选按钮 var

ElementUi 表格取消全选框,用文字表示

Echarts ElementUi 表格取消全选框,用文字表示 1.先看看实现的图 一. 添加添加复选框列 <el-table v-loading="zongShipLoading" tooltip-effect="dark" :header-cell-class-name="cellClass" height="350" ref="changeTable" @select="shipTab

checkbox 全选 单选的使用

绑定数据 if (!IsPostBack) { using (UsersDataContext con = new UsersDataContext()) { Repeater1.DataSource = con.Users.ToList(); Repeater1.DataBind(); } } 后台 checkbox 选中状态 去的值 void Button1_Click(object sender, EventArgs e) { Label1.Text=Request["ck"];

邮箱性质--全选单选的操作和传值 用属性的name传值

封装类 using System; using System.Collections.Generic; using System.Web; /// <summary> /// Ha 的摘要说明 /// </summary> public class Ha { private string _Name; public string Name { get { return _Name; } set { _Name = value; } } private int _Age; publi

Jquery全选单选功能

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm6.aspx.cs" Inherits="wzgyd.WebForm5" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/x

表格:全选,删除,跳出弹窗

5-22pm.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv=&qu

使用JavaScript完成表格的全选与取消

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>使用JavaScript实现全选与取消</title> <script> //选择all复选框,判断每个子复选框的checked值是否与all复选框的值一样 function chooseAll() { var flag=document.getElementById("

vim全选,全部复制,全部删除

全选(高亮显示):按esc后,然后ggvG或者ggVG 全部复制:按esc后,然后ggyG 全部删除:按esc后,然后dG 解析: gg:是让光标移到首行,在vim才有效,vi中无效 v : 是进入Visual(可视)模式 G :光标移到最后一行 选中内容以后就可以其他的操作了,比如: d  删除选中内容 y  复制选中内容到0号寄存器 "+y  复制选中内容到+寄存器,也就是系统的剪贴板,供其他程序用

PHP基础班初学心得:用JQ实现表单的全选、反选、取消和删除功能

摘要: 本人刚参加PHP基础班培训,由于之前毫无基础,分享的心得可能不规范,方法也许也"旁门左道",不能保证质量,只作自己总结学习,也希望能帮助到同样是初学者的朋友们,共同进步. 在这里分享一下我们基础班学员遇到的一些疑点和我的分析.PS:分析不一定正确,希望同行指教 前一段时间笔者重感冒了,身体不舒服,还请了一天假没去上实操课,播客也没有来得及和大家分享.今天感冒已经好得差不多啦,就剩下一点留鼻涕喉咙痒而已,刚好今天是休息天不用上课,这里打铁趁热,赶紧给大家分享一下昨天学到的用JQ实