入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

table表格的checkbox的全选和选中

创建时间:2016-12-22 投稿人: 浏览次数:2664
<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
    <title>表格</title>
    <meta name="keywords" content="表格">
    <meta name="description" content="这真的是一个表格" />
    <meta name="HandheldFriendly" content="True" />
    <!-- Bootstrap3.3.5 CSS -->
    <link href="static/bootstrap/2.3.1/css_cerulean/bootstrap.min.css" type="text/css" rel="stylesheet"/>

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!--[if lt IE 9]>
    <!--<script src="//cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>-->
    <!--<script src="//cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>-->
    <!--<![endif]–>-->
</head>

<body>
<div class="panel-group">
    <div class="panel panel-primary">
        <div class="panel-heading">
            列表
        </div>
        <div class="panel-body">
            <div class="list-op" id="list_op">
                <button type="button" class="btn btn-default btn-sm">
                    <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>新增
                </button>
                <button type="button" class="btn btn-default btn-sm">
                    <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>修改
                </button>
                <button type="button" class="btn btn-default btn-sm">
                    <span class="glyphicon glyphicon-remove" aria-hidden="true"></span>删除
                </button>
            </div>
        </div>
        <table class="table table-bordered table-hover">
            <thead>
            <tr class="success">
                <th>类别编号</th>
                <th>类别名称</th>
                <th>类别组</th>
                <th>状态</th>
                <th>说明</th>
            </tr>
            </thead>
            <tbody>
            <tr>
                <td>C00001</td>
                <td>机车</td>
                <td>机车</td>
                <td>有效</td>
                <td>机车头</td>
            </tr>
            <tr>
                <td>C00002</td>
                <td>车厢</td>
                <td>机车</td>
                <td>有效</td>
                <td>载客车厢</td>
            </tr>
            </tbody>
        </table>
        <div class="panel-footer">
            <nav>
                <ul class="pagination pagination-sm">
                    <li class="disabled">
                        <a href="#" aria-label="Previous">
                            <span aria-hidden="true">«</span>
                        </a>
                    </li>
                    <li class="active"><a href="#">1</a></li>
                    <li><a href="#">2</a></li>
                    <li><a href="#">3</a></li>
                    <li><a href="#">4</a></li>
                    <li><a href="#">5</a></li>
                    <li>
                        <a href="#" aria-label="Next">
                            <span aria-hidden="true">»</span>
                        </a>
                    </li>
                </ul>
            </nav>
        </div><!-- end of panel-footer -->
    </div><!-- end of panel -->
</div>
<!-- jQuery1.11.3 (necessary for Bo otstrap"s JavaScript plugins) -->
<script src="static/jquery/jquery-1.8.3.min.js" type="text/javascript"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="static/bootstrap/2.3.1/js/bootstrap.min.js" type="text/javascript"></script>
<script>
    $(function(){
        function initTableCheckbox() {
            var $thr = $("table thead tr");
            var $tbr = $("table tbody tr");
            var $checkAllTh = $("<th><input type="checkbox" id="checkAll" name="checkAll" /></th>");
            /*将全选/反选复选框添加到表头最前,即增加一列*/
            $thr.prepend($checkAllTh);
            /*“全选/反选”复选框*/
            var $checkAll = $thr.find("input");
            $checkAll.click(function(event){
                /*将所有行的选中状态设成全选框的选中状态*/
                $tbr.find("input").prop("checked",$(this).prop("checked"));
                /*并调整所有选中行的CSS样式*/
                if ($(this).prop("checked")) {
                    $tbr.find("input").parent().parent().addClass("warning");
                } else{
                    $tbr.find("input").parent().parent().removeClass("warning");
                }
                /*阻止向上冒泡,以防再次触发点击操作*/
                event.stopPropagation();
            });
            /*点击全选框所在单元格时也触发全选框的点击操作*/
            $checkAllTh.click(function(){
                $(this).find("input").click();
            });

            var $checkItemTd = $("<td><input type="checkbox" name="checkItem" /></td>");
            /*每一行都在最前面插入一个选中复选框的单元格*/
            $tbr.prepend($checkItemTd);
            /*点击每一行的选中复选框时*/
            $tbr.find("input").click(function(event){
                /*调整选中行的CSS样式*/
                $(this).parent().parent().toggleClass("warning");
                /*如果已经被选中行的行数等于表格的数据行数,将全选框设为选中状态,否则设为未选中状态*/
                $checkAll.prop("checked",$tbr.find("input:checked").length == $tbr.length ? true : false);
                /*阻止向上冒泡,以防再次触发点击操作*/
                event.stopPropagation();
            });
            /*点击每一行时也触发该行的选中操作*/
            $tbr.click(function(){
                $(this).find("input").click();
            });
        }
        initTableCheckbox();
    });
</script>
</body>

</html>


声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。