Web开发基础之Bootstrap

  1,Boots介绍

  简洁、直观、强悍的前端开发框架,让web开发更迅速、简单。

  作用:可以快速搭建响应式的网页,而不需要书写大量的 css

  中文文档: https://v3.bootcss.com/

  2,下载和部署

  下载地址:https://v3.bootcss.com/getting-started/#download

 

 

   目录结构

[root@localhost bootstrap-3.3.7-dist]# tree
.
├── css
│?? ├── bootstrap.css
│?? ├── bootstrap.css.map
│?? ├── bootstrap.min.css
│?? ├── bootstrap.min.css.map
│?? ├── bootstrap-theme.css
│?? ├── bootstrap-theme.css.map
│?? ├── bootstrap-theme.min.css
│?? └── bootstrap-theme.min.css.map
├── fonts
│?? ├── glyphicons-halflings-regular.eot
│?? ├── glyphicons-halflings-regular.svg
│?? ├── glyphicons-halflings-regular.ttf
│?? ├── glyphicons-halflings-regular.woff
│?? └── glyphicons-halflings-regular.woff2
└── js
    ├── bootstrap.js
    ├── bootstrap.min.js
    └── npm.js

  基本演示模板

 

#1.bootstrap入门.html
<!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>Bootstrap 101 Template</title>
    <!-- Bootstrap -->
    <!-- 注释掉的是网络引用 本次使用本地引用 -->
    <!-- <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet"> -->
    <link href="./bootstrap/css/bootstrap.min.css" rel="stylesheet">
  </head>
  <body>
    <h1>你好,Boostrap!</h1>
    <!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
    <!-- <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script> -->
    <script src="./jquery-3.4.1.js"></script>
    <!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
    <!-- <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script> -->
    <script src="./bootstrap/js/bootstrap.min.js"></script>
  </body>
</html>

  页面显示

 

   全局CSS

  Bootstrap中提供了很多类样式方便编写页面。

  1,容器类样式

  .container 类用于固定宽度并支持响应式布局的容器。

  示例

#1.bootstarp入门.html
<!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>Bootstrap 101 Template</title>
    <!-- Bootstrap -->
    <!-- 注释掉的是网络引用 本次使用本地引用 -->
    <!-- <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet"> -->
    <link href="./bootstrap/css/bootstrap.min.css" rel="stylesheet">
  </head>
  <body>
    <div class="container"><h1>你好,Boostrap!</h1></div>
    <h1>你好,Boostrap!</h1>
    <!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
    <!-- <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script> -->
    <script src="./jquery-3.4.1.js"></script>
    <!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
    <!-- <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script> -->
    <script src="./bootstrap/js/bootstrap.min.js"></script>
  </body>
</html>

  页面显示

 

   

  .container-fluid 类用于 100% 宽度,占据全部视窗口(viewport)的容器。

<div class="container-fluid">
</div>
  2,按钮类样式

  示例

#2.按钮类样式.html
<!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>Bootstrap 101 Template</title>
    <!-- Bootstrap -->
    <!-- 注释掉的是网络引用 本次使用本地引用 -->
    <!-- <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet"> -->
    <link href="./bootstrap/css/bootstrap.min.css" rel="stylesheet">
  </head>
  <body>
    <h1>你好,Boostrap!</h1>
    <!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
    <!-- <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script> -->
    <script src="./jquery-3.4.1.js"></script>
    <!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
    <!-- <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script> -->
    <script src="./bootstrap/js/bootstrap.min.js"></script>
    <a class="btn btn-default" href="#" role="button">(默认样式)Default</a>
    <button class="btn btn-primary" type="submit">(首选项)Primary</button>
    <input class="btn btn-success" type="button" value="(成功)Success">
    <input class="btn btn-info" type="submit" value="(一般信息)Info">

    <button class="btn btn-warning" type="submit">(警告)Warning</button>
    <button class="btn btn-danger" type="submit">(危险)Danger</button>
    <button class="btn btn-link" type="submit">(链接)Link</button>
    </body>
</html>

  页面显示

 

   3,表格类样式

  - .table 

    - 为任意 <table> 标签添加 .table 类可以为其赋予基本的样式 — 少量的内补(padding)和水平方向的分隔线

  - .table-striped

    - 通过 .table-striped 类可以给 <tbody> 之内的每一行增加斑马条纹样式。

  - .table-bordered

    - 添加 .table-bordered 类为表格和其中的每个单元格增加边框。

  - .table-hover

    - 通过添加 .table-hover 类可以让 <tbody> 中的每一行对鼠标悬停状态作出响应。

  表格类样式示例

#表格类样式.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link href="./bootstrap/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
    <script src="./jquery-3.4.1.js"></script>
    <script src="./bootstrap/js/bootstrap.min.js"></script>
    <!-- 不使用bootstrap -->
    <table border="1"> 
        <tr >
            <td >hostname</td>
            <td>ip</td>
            <td >type</td>
            <td >status</td>
        </tr>
        <tr>
            <td >server1</td>
            <td>192.168.1.1</td>
            <td >web</td>
            <td >online</td>
        </tr>
        <tr>
            <td >server1</td>
            <td>192.168.1.1</td>
            <td >web</td>
            <td >online</td>
        </tr>
    </table>
    <!-- 使用bootstarp修饰的表格 -->
    <!-- table-striped斑马条纹样式
    table-bordered加边框 -->
    <table class='table table-striped table-bordered'> 
        <tr >
            <td >hostname</td>
            <td>ip</td>
            <td >type</td>
            <td >status</td>
        </tr>
        <tr>
            <td >server1</td>
            <td>192.168.1.1</td>
            <td >web</td>
            <td >online</td>
        </tr>
        <tr>
            <td >server1</td>
            <td>192.168.1.1</td>
            <td >web</td>
            <td >online</td>
        </tr>
    </table>
</body>
</html>

  页面显示

 

   4,表单

  单独的表单控件会被自动赋予一些全局样式。所有设置了 .form-control 类的 <input>、<textarea> 和 <select> 元素都将被默认设置宽度属性为 width: 100%;。 将 label 元素和前面提到的控件包裹在 .form-group 中可以获得最好的排列。

  表单样式示例

#表单样式.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>表格类样式</title>
    <link href="./bootstrap/css/bootstrap.min.css" rel="stylesheet">
    <style>
        form{
            width: 20%;
        }
    </style>
</head>
<body>
    <!-- 未使用bootstarp -->
    <form action="" method="">
        用户名:<input type="text" name="username" size="20" maxlength="5"/> <br/>
        <!-- 和文本是一致的不过是输入时隐藏 -->
        密码:<input type="password" name="password"/> <br/>
        性别:<input type="radio" name="sex" value="2" checked/> 保密 <input type="radio" name="sex" value="0" id="male"/> <label for="male">男</label> <input type="radio" name="sex" value="1" /> 女 <br/>
        爱好:<input type="checkbox" name="hobby" checked/> 吃饭 <input type="checkbox" name="hobby" checked/> 睡觉 <input type="checkbox" name="hobby"/> 打豆豆 <br/>
        学历:<select name="" id="">
            <option value="0">==请选择==</option>
            <option value="1">初中</option>
            <option value="2">高中</option>
            <option value="3">专科</option>
            <option value="4">本科</option>
            <option value="5">硕士</option>
        </select> <br/>
        自我介绍:<br/>
        <textarea name="" id="" cols="30" rows="10"></textarea><br/>
        <input type="submit" value="注册" /> <input type="reset" value="重置">      
    </form>
    <!-- 使用bootstrap -->
    <form action="" method="">
        <div class="form-group">
            用户名:<input type="text" name="username" class='form-control'/> 
        </div>
        
        <div class="form-group">
            密码:<input type="password" name="password" class='form-control'/> 
        </div>

        <div class="form-group">
            性别:<input type="radio" name="sex" value="2"  checked/> 保密 <input type="radio" name="sex" value="0" id="male"/> <label for="male">男</label> <input type="radio" name="sex" value="1" /> 女
        </div>

        <div class="form-group ">
            爱好:<input type="checkbox" name="hobby" checked/> 吃饭 <input type="checkbox" name="hobby" checked/> 睡觉 <input type="checkbox" name="hobby"/> 打豆豆
        </div>
       
        <div class="form-group ">
            学历:<select name="" id="">
                <option value="0">==请选择==</option>
                <option value="1">初中</option>
                <option value="2">高中</option>
                <option value="3">专科</option>
                <option value="4">本科</option>
                <option value="5">硕士</option>
            </select> 
        </div>
        <div class="form-group">
            自我介绍:
        </div>
        <div class="form-group">
            <textarea name="" id="" cols="30" rows="5" class="form-control"></textarea>
        </div>
        <div class="form-group">
            <input type="submit" value="注册" /> <input type="reset" value="重置">   
        </div>   
    </form>
</body>
</html>

  页面显示

 

   5,分页

  示例

#分页.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>分页</title>
    <link href="./bootstrap/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
    <script src="./jquery-3.4.1.js"></script>
    <!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
    <!-- <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script> -->
    <script src="./bootstrap/js/bootstrap.min.js"></script>
    <nav aria-label="Page navigation">
        <ul class="pagination">
          <li>
            <a href="#" aria-label="Previous">
              <span aria-hidden="true">«</span>
            </a>
          </li>
          <li><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>
</body>
</html>

  页面显示

 

   Bootstrap插件

  交互的效果要通过 JavaScript 来实现,Bootstrap 的插件在使用前,需要先引用两个 js 文件。

 <script src="./jquery-3.4.1.js"></script>
    <!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
    <!-- <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script> -->
    <script src="./bootstrap/js/bootstrap.min.js"></script>

  

  1,模态框

  第一步获取官方模板

<!-- 官方模态框模板 -->
    <div id="myModal" class="modal fade" tabindex="-1" role="dialog">
        <div class="modal-dialog" role="document">
          <div class="modal-content">
            <div class="modal-header">
              <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
              <h4 class="modal-title">Modal title</h4>
            </div>
            <div class="modal-body">
              <!-- 此处是在模态框中显示的内容 -->
              <p>One fine body…</p>
            </div>
            <div class="modal-footer">
              <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
              <button type="button" class="btn btn-primary">Save changes</button>
            </div>
          </div><!-- /.modal-content -->
        </div><!-- /.modal-dialog -->
      </div><!-- /.modal -->

  第二步 点击按钮弹出模态框

  <!-- Button trigger modal -->
    <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal">
        Launch demo modal
    </button>

    完整代码

#模态框.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>bootstart插件</title>
    <link href="./bootstrap/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
    <script src="./jquery-3.4.1.js"></script>
    <!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
    <!-- <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script> -->
    <script src="./bootstrap/js/bootstrap.min.js"></script>
    <!-- 官方模态框模板 -->
    <div id="myModal" class="modal fade" tabindex="-1" role="dialog">
        <div class="modal-dialog" role="document">
          <div class="modal-content">
            <div class="modal-header">
              <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
              <h4 class="modal-title">Modal title</h4>
            </div>
            <div class="modal-body">
              <!-- 此处是在模态框中显示的内容 -->
              <p>One fine body…</p>
            </div>
            <div class="modal-footer">
              <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
              <button type="button" class="btn btn-primary">Save changes</button>
            </div>
          </div><!-- /.modal-content -->
        </div><!-- /.modal-dialog -->
      </div><!-- /.modal -->
    
      <!-- Button trigger modal -->
    <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal">
        Launch demo modal
    </button>
</body>
</html>

  页面显示

 

   第三步 隐藏模态框 

  Close可以关闭模态框 ,也可以使用按钮隐藏 例如把Save changes设置为隐藏模态框

  在<body></body>添加以下代码

   <script>
        // 点击Save changes(id为savebtn)隐藏模态框(id为myModal)
        $('#savebtn').click(function(){
            $('#myModal').modal('hide')
        })
    </script>

  3,基于bootstarp的案例

  官方案例模板:

  https://v3.bootcss.com/getting-started/#examples-framework

  案例:快速实现一个资产管理,主机列表的页面

 

  使用examples案例中的dashboard页面

  第一步 使用模板页面

  第二步 根据需要修改对应html标签

#8.主机列表.html
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="icon" href="./favicon.ico">

    <title>CMDB管理平台</title>

    <!-- Bootstrap core CSS -->
    <link href="./bootstrap/css/bootstrap.min.css" rel="stylesheet">

    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
    <!-- <link href="./bcss/ie10-viewport-bug-workaround.css" rel="stylesheet"> -->

    <!-- Custom styles for this template -->
    <link href="./dashboard.css" rel="stylesheet">
    <link href="./layer.css" rel="stylesheet">
    
  </head>

  <body>

    <nav class="navbar navbar-inverse navbar-fixed-top">
      <div class="container-fluid">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="#">CMDB管理平台系统</a>
     
    </nav>

    <div class="container-fluid">
      <div class="row">
        <div class="col-sm-3 col-md-2 sidebar">
          <ul class="nav nav-sidebar">
            <li class="active"><a href="#">主机列表 <span class="sr-only">(current)</span></a></li>
            <li><a href="#">用户列表</a></li>
            <!-- <li><a href="#">Analytics</a></li>
            <li><a href="#">Export</a></li> -->
          </ul>
          <!-- <ul class="nav nav-sidebar">
            <li><a href="">Nav item</a></li>
            <li><a href="">Nav item again</a></li>
            <li><a href="">One more nav</a></li>
            <li><a href="">Another nav item</a></li>
            <li><a href="">More navigation</a></li>
          </ul>
          <ul class="nav nav-sidebar">
            <li><a href="">Nav item again</a></li>
            <li><a href="">One more nav</a></li>
            <li><a href="">Another nav item</a></li>
          </ul> -->
        </div>
        <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
          <h1 class="page-header">主机列表</h1>
          <a class="btn btn-info btn-lg" data-toggle="modal" data-target="#mybox">添加主机</a>
          <!-- <div class="row placeholders">
            <div class="col-xs-6 col-sm-3 placeholder">
              <img src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" width="200" height="200" class="img-responsive" alt="Generic placeholder thumbnail">
              <h4>Label</h4>
              <span class="text-muted">Something else</span>
            </div>
            <div class="col-xs-6 col-sm-3 placeholder">
              <img src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" width="200" height="200" class="img-responsive" alt="Generic placeholder thumbnail">
              <h4>Label</h4>
              <span class="text-muted">Something else</span>
            </div>
            <div class="col-xs-6 col-sm-3 placeholder">
              <img src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" width="200" height="200" class="img-responsive" alt="Generic placeholder thumbnail">
              <h4>Label</h4>
              <span class="text-muted">Something else</span>
            </div>
            <div class="col-xs-6 col-sm-3 placeholder">
              <img src="data:image/gif;base64,R0lGODlhAQABAIAAAHd3dwAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" width="200" height="200" class="img-responsive" alt="Generic placeholder thumbnail">
              <h4>Label</h4>
              <span class="text-muted">Something else</span>
            </div>
          </div> -->
          <!-- <h2 class="sub-header">Section title</h2> -->
          <table class="table table-striped  table-hover"> 
            <tr >
                <th>ID</th>
                <th >hostname</th>
                <th>ip</th>
                <th >type</th>
                <th >status</th>
                <th>操作</th>
            </tr>
            <tr>
                <td>1</td>
                <td >server1</td>
                <td>192.168.1.1</td>
                <td >web</td>
                <td >online</td>
                <td><a class="btn btn-success btn-sm">修改</a><a class="btn btn-danger btn-sm">删除</a></td>
            </tr>
            <tr>
                <td>2</td>
                <td >server1</td>
                <td>192.168.1.1</td>
                <td >web</td>
                <td >online</td>
                <td><a class="btn btn-success btn-sm">修改</a><a class="btn btn-danger btn-sm">删除</a></td>
            </tr>
        </table>
        </div>
      </div>
    </div>
    <div class="modal fade" id="mybox" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
                            aria-hidden="true">×</span></button>
                    <h1 class="modal-title" id="myModalLabel">主机添加</h1>
                </div>
                <div class="modal-body">
                    <form action="" method="">
                        <div class="form-group">
                            主机名称<input type="text" name="username" class="form-control" size="100" id="hostname" />
                        </div>
                        <div class="form-group">
                            IP: <input type="text" name="ip" class="form-control" />
                        </div>
                        <div class="form-group">
                            主机类型:<select name="type" id="" class="form-control">
                                <option value="0">===请选择===</option>
                                <option value="1">db</option>
                                <option value="2" selected>web</option>
                                <option value="3">redis</option>
                                <option value="4">mongodb</option>
                                <option value="5">tomcat</option>
                            </select>
                        </div>
                        <div class="form-group">
                            主机状态:<select name="status" id="" class="form-control">
                                <option value="0">===请选择===</option>
                                <option value="1">在线</option>
                                <option value="2" selected>下载</option>
                            </select>
                        </div>
                    </form>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
                    <button type="button" class="btn btn-primary" id="savebtn">保存</button>
                </div>
            </div>
        </div>
    </div>
    
    <!-- Bootstrap core JavaScript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="./jquery-3.4.1.js"></script>
    <script src="./bootstrap/js/bootstrap.min.js"></script>
    <script src="./layer/layer.js"></script>

    
  </body>
</html>

  页面显示

 

   实现模拟删除主机

  方法一 删除无需确认

  在标签<body>内添加以下代码

   <!-- 删除无确认 -->
    <script>
        $('.btn-danger').each(function(index,item){
            $(item).click(function(){
                $(item).parents('tr').hide();
            });
        });
    </script>

  页面点击删除立即删除

 

   方法二 使用confirm确认删除

<!-- 删除需要确认 -->
    <script>
        $('.btn-danger').each(function(index,item){
            $(item).click(function(){
                if(confirm('真的要删除吗?')){
                    $(item).parents('tr').hide();
                }
            });
        });
    </script>

  页面显示

 

 

  方法三 使用layer插件

  需要加载layer插件 官方文档地址:https://layer.layui.com/

  加载layer前需要加载jQuery插件

  在<body>内加载

<script src="./jquery-3.4.1.js"></script>
    <script src="./bootstrap/js/bootstrap.min.js"></script>
    <script src="./layer/layer.js"></script>

  使用layer插件确认删除

   <script>
    $('.btn-danger').each(function (index, item) {
        $(item).click(function () {
            layer.confirm('真的要删除吗?', {
                btn: ['是的', '不是'] //按钮
            }, function () {
                // 点击第一个按钮
                $(item).parents('tr').hide();
                layer.msg('删除成功', { icon: 1 });
            }, function () {
                // 点击第二个按钮
                layer.msg('删除失败', {
                    time: 20000, //20s后自动关闭
                    btn: ['明白了', '知道了']
                });
            });
        });
    });
    </script>

  页面显示

 

 

 

 

 

 

   四,Ajax

  1,Ajax介绍

  Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML)

  创建交互式网页应用的网页开发的一组技术。

  作用:异步发送请求,提升了用户体验。

  2,使用jquery发送Ajax

  2.1发送get请求
$.ajax({
  type: 'get',
  url: 'xxxxx',
  success: function (res) {
  }
})
  2.2发送post请求
$.post('/path/to/file', {param1: 'value1'}, function(data, textStatus, xhr) {
      /*optional stuff to do after success */
    });
  2.3Ajax方法
$.ajax({
  type: 'post',
  url: 'xxxxx',
  data: data,
  success: function (res) { 
  }
});

  3,实现聊天机器人

  API:http://www.tuling123.com/openapi/api

  请求方法:POST

  请求参数:key=d7c82ebd8b304abeacc73b366e42b9ed&info=你好

参数名称

参数值

key

请求权限标识符

info

关键字参数

  聊天机器人示例

#9聊天机器人.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>聊天机器人</title>
</head>
<body>
    <script src="./jquery-3.4.1.js"></script>
    <script>
        var data = {key:'d7c82ebd8b304abeacc73b366e42b9ed',info:'你好'}
        $.post("http://www.tuling123.com/openapi/api",data,
            function(data,textStatys,jqXHR){
                console.log(data);
            }
        )
    </script>
</body>
</html>

 

   

  4,操作主机列表页面

  4.1接口服务器搭建

  使用json-server启动一个接口服务器,借助node进行开发的。安装node系统环境。

 

   安装json-server

npm install -g json-server

  编写json文件

#db.json
{
  "hosts": [
    {
      "id": 2,
      "hostname": "server02",
      "ip": "192.168.17.101",
      "type": "db",
      "status": "up"
    },
  {
      "id": 3,
      "hostname": "server03",
      "ip": "192.168.17.103",
      "type": "web",
      "status": "up"
    }	
   ]
}

    启动

json-server --watch jb.json

 

   web页面查看

 

   4.2动态获取主机列表
#主机列表简单版.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>主机列表简单版</title>
    <link href="./bootstrap/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
    <table  class="table table-striped  table-hover">
        <tr >
            <th>ID</th>
            <th>hostname</th>
            <th>ip</th>
            <th>type</th>
            <th>status</th>
            <th>操作</th>
    </table>
  
    <script src="./jquery-3.4.1.js"></script>
    <script src="./bootstrap/js/bootstrap.min.js"></script>
    <script>
        var str = '';
        $.ajax({
          type: "get",
          url: "http://localhost:3000/hosts",
          data: "",
          dataType: "json",
          success: function (res) {
              // 打印res是一个元素
              console.log(typeof(res));
              // 遍历元素拼接成一个字符串,字符串即对应的表格tabel
              for (var index = 0; index < res.length; index++) {
                  str += '<tr><td>'+res[index].id+'</td><td>'+res[index].hostname+'</td><td>'+res[index].ip+'</td><td>'+res[index].type+'</td><td>'+res[index].status+'</td><td><a class="btn btn-success btn-sm">修改</a><a class="btn btn-danger btn-sm">删除</a></td></tr>';
              }
              // 打印拼接的字符串
              console.log(str);
              // 把拼接的字符串最佳到表格内 即增加了几行主机
              $('tbody').append(str);
          }
      });
    </script>
</body>
</html>

  页面显示

 

posted @ 2020-11-24 17:06  minseo  阅读(351)  评论(0编辑  收藏  举报