zoukankan      html  css  js  c++  java
  • python第九十一天----第十六周作业

    实现功能:
    1、非编辑模式
        ​    可以对每行进行选择,全选,取消,反选 ;
    2、编辑模式
        ​   进入编辑模式时:
                如果行被选中,则被选中的行变为可编辑状态,未选中则不改变
        ​   退出编辑模式时:
                保存所有的行的修改并进入非编辑状态
        ​   单个勾选: 
                勾上时: 进入编辑状态
                去勾时: 保存所在行的修改进入非编辑状态
        ​   全选时: 
                所有行进入编辑状态
           取消是: 
                   所有行保存修改进入非编辑状态
           反选时: 
                   被选中的行 
                       取消勾选 保存修改进入非编辑状态
                   未被选中的行 
                       进行勾选 进入编辑状态 
               批量上下线:
                   按住CTRL键 点击上下线的下拉项,可以批量进行设置上下线 被选中的行进行统一的设置
    3、添加主机
        可以添加主机

    详细代码:

      1 <!DOCTYPE html>
      2 <html lang="en">
      3 <head>
      4     <meta charset="UTF-8">
      5     <title>编辑框功能</title>
      6     
      7     <style type="text/css">
      8         /*顶部菜单*/
      9         .pag-head{
     10             position: fixed;
     11             z-index: 7;
     12             top: 0;
     13             left: 0;
     14             right: 0;
     15             height: 48px;
     16             width: 100%;
     17             background: #005EA7;
     18             
     19         }
     20         .meun_top{
     21             height: 48px;
     22             line-height: 48px;
     23             width: 960px;
     24             /*border: 1px solid red;*/
     25             margin: 0 auto;
     26         }
     27             /*顶部菜单组*/
     28         .meuns_top{
     29             text-decoration: none;
     30             color: white;
     31             padding: 0px 10px 0px 10px;
     32             display: inline-block;
     33         }
     34         .meuns_top:hover{
     35             background-color: rgba(64,119,203,0.6);
     36         }
     37         
     38         .clear_div{
     39             clear: both;
     40         }
     41         /*顶部菜单结束*/    
     42         
     43         
     44         /*下方大框*/
     45         .pag-cent{
     46             margin-top: 50px;
     47             
     48         }
     49         
     50         
     51         /*左侧菜单*/
     52         .left-meun{
     53             z-index: 8;
     54             position: fixed;
     55             top: 50px;
     56             left: 55px;
     57         }
     58         .meuns{
     59             
     60             background-color: #005EA7;
     61             height: 45px;
     62             width:150px;
     63             color:white;
     64             line-height: 45px;
     65             text-align: center;
     66         }
     67         .meuns:hover{
     68             background-color: rgba(64,119,203,0.6);
     69         }
     70         .hide{
     71             display: none;
     72         }
     73         .content{
     74             margin-left: 65%;
     75         }
     76         .item{
     77             width:150px;
     78         }
     79         /*左侧菜单结束*/
     80         
     81         /*下方右边内容块*/
     82         .big-content{
     83             height: 1000px;
     84             border: 1px solid green;
     85         }
     86         
     87         .content_right{
     88             margin: 0 auto;
     89             height: 800px;
     90             width: 960px;
     91             border: 1px solid blueviolet;
     92         
     93            }
     94            
     95            .hosts{
     96                margin-left: 30px;
     97                margin-top: 20px;
     98            }
     99            table{
    100                border-spacing: 1px;
    101                margin-top: 8px;
    102                }
    103         /*遮罩层*/
    104         .c1{
    105             position: fixed;
    106             z-index: 9;
    107             /*打开多层样式 fixed模式 定义层级为9*/
    108             top:0;
    109             right:0;
    110             left:0;
    111             bottom:0;
    112             /*上面表示全覆盖*/
    113             background-color: black;
    114             /*上面为背景色 为黑  下面为透明度为50%*/
    115             opacity: 0.5;
    116         }
    117         .c2{
    118            position: fixed;
    119            z-index: 10;
    120             /*打开多层样式 fixed模式 定义层级为9*/
    121 
    122             width:400px;
    123             height: 300px;
    124             top:50%;
    125             left:50%;
    126             margin-left: -200px;
    127             margin-top: -150px;
    128             background-color: white;
    129             
    130         }
    131         .z-z{
    132             width: 230px;
    133             height: 120px;
    134             margin-top: 90px;
    135             margin-left: 90px;
    136         }
    137         
    138         .error{
    139             color: red;
    140         }
    141         hr{
    142             width: 230px;
    143         }
    144         #cre{
    145             margin-left: 70px;
    146         }
    147         .heds{
    148             /*默认不显示*/
    149             display: none;
    150         }
    151         
    152         .right-menu{
    153             width: 320px;
    154             height: 30px;
    155             line-height: 30px;
    156         }
    157         .edits{
    158             float: right;
    159             border: 1px solid darkgray;
    160             padding: 2px;
    161             background-color: #A9A9A9;
    162             font-size: 9px;
    163         }
    164         .edits-2{
    165             background-color: orange;
    166         }
    167         
    168         .option-ol{
    169             
    170         }
    171         /*下方右边内容块结束*/
    172         
    173         
    174         /*返回顶部*/
    175         .pa-top{
    176             width: 68px;
    177             height: 48px;
    178             position: fixed;
    179             right: 25px;
    180             bottom: 25px;
    181             background-image: url(img/top.png);
    182             background-position: -425px -270px ;
    183             
    184         }
    185     </style>
    186 </head>
    187 <body style="margin: 0">
    188     <!--顶部菜单-->
    189     <div class="pag-head">
    190         <div class="meun_top">
    191             <a href="" class="meuns_top">顶部菜单一</a>
    192             <a href="" class="meuns_top">顶部菜单二</a>
    193             <a href="" class="meuns_top">顶部菜单三</a>
    194             <a href="" class="meuns_top">顶部菜单四</a>
    195             <a href="" class="meuns_top">顶部菜单五</a>
    196             <a href="" class="meuns_top">顶部菜单六</a>            
    197         </div>
    198         <div class="clear_div">
    199             
    200         </div>
    201         
    202     </div>
    203     <!--下方大框-->
    204     <div class="pag-cent">
    205         
    206         <!--左边菜单-->
    207         <div class="left-meun">
    208             <div class="item">
    209                 <div id="i1"  class="meuns">菜单1</div>
    210                     <div class="content">
    211                         <div>内容1</div>
    212                         <div>内容1</div>
    213                         <div>内容1</div>
    214                         <div>内容1</div>
    215                     </div>
    216                 </div>
    217             
    218             <div class="item">
    219                 <div id="i2"  class="meuns">菜单2</div>
    220                 <div class="content hide">
    221                     <div>内容2</div>
    222                     <div>内容2</div>
    223                     <div>内容2</div>
    224                     <div>内容2</div>
    225                 </div>
    226             </div>
    227             
    228             <div class="item">
    229                 <div id="i3"  class="meuns">菜单3</div>
    230                 <div class="content hide">
    231                     <div>内容3</div>
    232                     <div>内容3</div>
    233                     <div>内容3</div>
    234                     <div>内容3</div>
    235                 </div>
    236             </div>
    237             
    238             <div class="item">
    239                 <div id="i4" class="meuns">菜单4</div>
    240                 <div class="content hide">
    241                     <div>内容4</div>
    242                     <div>内容4</div>
    243                     <div>内容4</div>
    244                     <div>内容4</div>
    245     
    246                 </div>
    247 
    248             </div>
    249              
    250         </div>
    251         
    252             
    253             
    254         <!--右边内容-->
    255         <div class="big-content">
    256             <div class="content_right">
    257                 <div class="hosts">
    258                     <div class="right-menu">
    259                         <input type="button" id='add' value="添加" >
    260                         <input type="button" id="all" value="全选" >
    261                         <input type="button" id="remov" value="取消" >
    262                         <input type="button" id="rest" value="反选" >
    263                         <div class="edits" id="ed" name='none'>
    264                             点击:进入编辑模式
    265                         </div>
    266                     </div>
    267                     
    268                     <table border="1" id="tab">
    269                         <thead>
    270                             <tr>
    271                                 <th>选择</th>
    272                                 <th>主机</th>
    273                                 <th>端口</th>
    274                                 <th>ip</th>
    275                                 <th>操作</th>
    276                             </tr>
    277                         </thead>
    278                         <tbody id="tb">
    279         
    280                             <tr>
    281                                 <td><input type="checkbox" as='true'></td>
    282                                 <td tag='hostname'>主机一</td>
    283                                 <td tag='port'>1000</td>
    284                                 <td tag='ip'>10.10.12.1</td>
    285                                    <td tag='olin'>
    286                                        <select name="ol" class="heds">
    287                                            <option value="在线">在线</option>
    288                                            <option value="下线">下线</option>
    289                                        </select>
    290                                        <a>在线</a>
    291                                    </td>     
    292                             <tr>
    293                                 <td><input type="checkbox" as='true'></td>
    294                                 <td tag='hostname'>主机二</td>
    295                                 <td tag='port'>1000</td>
    296                                 <td tag='ip'>10.10.12.2</td>
    297                                 <td tag='olin'>
    298                                     <select name="ol" class="heds">
    299                                            <option value="在线">在线</option>
    300                                            <option value="下线">下线</option>
    301                                        </select>
    302                                        <a>下线</a>
    303                                 </td>     
    304                             </tr>
    305                             <tr>
    306                                 <td><input type="checkbox" as='true'></td>
    307                                 <td tag='hostname'>主机三</td>
    308                                 <td tag='port'>1000</td>
    309                                 <td tag='ip'>10.10.12.3</td>
    310                                 <td tag='olin'>
    311                                     <select name="ol" class="heds">
    312                                            <option value="在线">在线</option>
    313                                            <option value="下线">下线</option>
    314                                        </select>
    315                                        <a>下线</a>
    316                                 </td>                                
    317                                 
    318                             </tr>
    319                         </tbody>
    320                     </table>
    321                 </div>
    322             </div>
    323             <!--遮罩层-->
    324             <div class="c1 heds" id="z-cent"></div>
    325             <!--对话框-->
    326             <div class="c2 heds" id="z-first">
    327                 <form class="z-z">
    328                     <lable>&nbsp;机:</lable>
    329                     <input type="text" name="hostname"  id="hosts" value=""><br /><br />
    330                     <lable>&nbsp;口:</lable>
    331                     <input type="text" name="port" id="ports" value=""><br /><br />
    332                     <lable>I&nbsp;&nbsp;&nbsp;P:</lable>
    333                     <input type="text" name="ip" id="ips" value=""><br />
    334                     <hr />
    335                     <input type="button" name="" id="cre"  value="确定" >
    336                     <input type="button" id="gb"  value="关闭">
    337                 </form>
    338                 
    339             </div>
    340             
    341         </div>
    342         
    343     </div>
    344     
    345     
    346     
    347     <div class="pa-top" onclick="topy();"></div>
    348     
    349     
    350     <script src="jquery-1.11.3/jquery.min.js" type="text/javascript" charset="utf-8"></script>
    351     
    352     <script type="text/javascript">
    353         
    354         
    355         //单个勾选
    356         $('#tb tr td').delegate('input[type="checkbox"]','click',function  () {
    357             console.log($(this).prop('checked'));
    358             if($('#ed').attr('as')&& $(this).prop('checked')){
    359                 edi_a(this);    
    360             }else if($('#ed').attr('as')&& $(this).prop('checked')==false){
    361                 edi_b(this);
    362             }
    363         })
    364         
    365         //进入函数
    366         function edi_a (self) {
    367             $(self).attr('as','false');//设置是否编辑状态
    368             $(self).parent().nextUntil('[tag="olin"]').each(function  () {
    369                 // 父级    的所有兄弟                查找     属性有 tag  的
    370                 var v=$(this).text();//获取内容 
    371                 $(this).empty();//清空内容
    372                 var new_v=$(this).append("<input type='text' value='"+v+"'>");//添加内容                            
    373             })
    374             var s=$(self).parent().nextAll('[tag="olin"]').children();//找到下拉菜单标签 
    375             s.each(function () {
    376                 $(this).removeClass('heds');//移除样式
    377                 $(this).next().remove();//清空内容
    378             })                
    379         }
    380         
    381         //退出函数
    382         function edi_b (self) {
    383             $(self).attr('as','true');//设置是否编辑状态
    384             $(self).parent().nextUntil('[tag="olin"]').each(function  () {
    385                 // 父级    的所有兄弟                查找     属性有 tag  的    
    386                 //$(this).attr('as','true');
    387                 var v=$(this).find('input').val();//获取内容 
    388                 $(this).find('input').remove('input');//    移除        标签        
    389                 $(this).text(v);                        
    390             })
    391             var s=$(self).parent().nextAll('[tag="olin"]').children();//找到下拉菜单标签 
    392             s.each(function () {
    393                 $(this).addClass('heds');//添加样式
    394                 var ol=$(this).val();//获取值
    395                 var n='<a>'+ol+'</a>';
    396                 $(this).after(n);
    397             })                
    398         }
    399         
    400         ////编辑模式判断
    401         $('.right-menu').delegate('.edits','click',function(){
    402             
    403             if($(this).hasClass('edits-2')){
    404                 $(this).removeClass('edits-2');//移除样式
    405                 $(this).text('点击:进入编辑模式');//改变内容    
    406                 $(this).removeAttr('as');//移除属性
    407                 editlistz ()
    408             }else{
    409                 $(this).addClass('edits-2');//添加样式
    410                 $(this).text('点击:退出编辑模式');//改变内容    
    411                 $(this).attr('as','disp');//添加属性
    412                 editlist();//编辑框函数
    413             }
    414         })
    415         
    416         //退出编辑框函数
    417         function editlistz () {
    418             $('#tb tr').find('input[type="checkbox"]').each(function() {//获取表单内容  列表
    419                 if ($(this).prop('checked')) {//判断是否打勾
    420                     
    421                     edi_b(this);            
    422                 }
    423             })            
    424         }
    425         
    426         //进入编辑框函数
    427         function editlist () {
    428             $('#tb tr').find('input[type="checkbox"]').each(function() {//获取表单内容  列表
    429                 if ($(this).prop('checked')) {//判断是否打勾
    430                     //$(this).attr('as','false');
    431                     edi_a(this);            
    432                 }
    433             })            
    434         }
    435         
    436         //批量上下线
    437         $('#tb tr td').delegate('select[name="ol"]','click',function  () {
    438             $(this).keydown(function  (event) {
    439                 if (event.keyCode==17&& $(this).mousedown()){
    440                     var ol=$(this).val();//获取值
    441                     var m=$(this).parent().parent().siblings();
    442                     //     父级              的父级     的所有兄弟
    443                     //console.log(m);
    444                     m.each(function () {
    445                         //   子级
    446                         if ($(this).find('input[as="false"]').prop('checked')) {//找到子级 是有选 上的
    447                             ($(this).children().find('[name="ol"]').val(ol));//进行赋值
    448                         }
    449                         
    450                     })
    451                     return false;
    452                 }
    453 
    454             })
    455             
    456         })
    457         
    458         //左侧菜单js 点击函数    
    459         $('.meuns').click(function(){
    460             //当前点击的标签
    461             $(this).next().removeClass('hide');//找到下一个标签  移除样式
    462             $(this).parent().siblings().find('.content').addClass('hide')//获取父级,的同级所有兄弟标签 ,查找 其所有下级的类名,添加样式
    463         })
    464         
    465         //返回顶部
    466         function topy(){
    467             document.body.scrollTop=0;
    468         }
    469         
    470         //显示对话框
    471         $('#add').click(function(){
    472             $('#z-cent,#z-first').removeClass('heds');//移除类名 样式
    473             $('.z-z input[type="text"]').val('');
    474         })
    475         
    476         //关闭对话框    
    477         $('#gb').click(function(){
    478             $('#z-cent,#z-first').addClass('heds');//添加 类名 样式
    479         })
    480         
    481         //添加主机 IP        
    482       $('#cre').click(function(){
    483                var flag=true;//默认提交
    484             $('.error').remove();//事先移除 提示标签
    485             $('.z-z').find('input[type="text"]').each(function  () {//查找 type=text 的input  循环判断
    486                 var v=$(this).val();//当前标签的值
    487                 if(v.length<=0){
    488                     flag=false;//改为不能提交
    489                     var tag =document.createElement('span');//创建一个标签
    490                     tag.className='error';//添加一个类名
    491                     tag.innerHTML='不能为空';
    492                     $(this).after(tag);
    493                 }
    494             })
    495             if(flag==true){
    496                 var host=$('#hosts').val();//主机名
    497                 var port=$('#ports').val();//端口
    498                 var ip=$('#ips').val();//ip
    499                 var tab=$('#tab');//获取页面表格
    500                 var newtr='<tr><td><input type="checkbox" as="true"></td><td>'+host+'</td><td>'+port+'</td><td>'+ip+'</td><td tag="olin"><select name="ol" class="heds"><option value="在线">在线</option><option value="下线">下线</option></select><a>在线</a></td></tr>';
    501                 $(tab).append(newtr);
    502                 $('#z-cent,#z-first').addClass('heds');//添加 类名 样式
    503             }
    504        })
    505       
    506       
    507         //全选
    508         $('#all').click(function (){
    509             $(':checkbox').prop('checked',true).each(function () {
    510                 
    511                 if ($('#ed').attr('as')&& $(this).attr('as')=='true') {//判断是否是编辑模式,, 
    512                     edi_a(this);
    513                 }
    514                 
    515             });
    516             
    517         })
    518             
    519         //取消
    520         $('#remov').click(function (){
    521             $(':checkbox').prop('checked',false).each(function () {
    522                 
    523                 if ($('#ed').attr('as')&& $(this).attr('as')=='false') {
    524                     edi_b(this);
    525                 }
    526             })
    527         })
    528         
    529         //反选 
    530         //通过 each循环  三元运算  操作 写法
    531         $('#rest').click(function (){
    532             $('#tb :checkbox').each(function(){
    533                 var v=$(this).prop('checked')?false:true;//获取值                       
    534                 $(this).prop("checked",v);//赋于checkbox 
    535                 if(v==true){//判断是否是勾选   勾选再进行判断 
    536                     if ($('#ed').attr('as')&& $(this).attr('as')=='true') {//如果是编辑模式  并且 处于锁定状态
    537                         edi_a(this);//进入编辑
    538                     }
    539                 
    540                 }else{
    541                     if ($('#ed').attr('as')&& $(this).attr('as')=='false') {//如果是编辑模式  并且 处于非锁定状态
    542                         
    543                         edi_b(this);//退出编辑
    544                     }
    545                 }
    546             })
    547             
    548         })
    549         
    550         
    551     </script>
    552     
    553 </body>
    554 </html>
    View Code
  • 相关阅读:
    循序渐进学习栈和队列
    循序渐进学习数据结构之线性表
    2018 noip 备战日志
    2018 noip 考前临死挣扎
    二维前缀和与差分
    noip模板复习
    宽搜总结
    强联通总结
    二分图再次总结
    NOIP 2016 换教室(期望dp)
  • 原文地址:https://www.cnblogs.com/uge3/p/7267629.html
Copyright © 2011-2022 走看看