js表格全选反选

  1 <!--(c) Copyright 2018 Web牧马人. All Rights Reserved. 
  2 2018-04-19-->
  3 <!DOCTYPE html>
  4 <html>
  5     <head>
  6         <meta charset="utf-8" />
  7         <title>js表格全选反选</title>
  8         <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
  9         <style type="text/css">
 10             *{
 11                 margin: 0;
 12                 padding: 0;
 13             }
 14             table thead tr th{
 15                 text-align: center;
 16             }
 17         </style>
 18     </head>
 19     <body>
 20         <table class="table table-bordered table-striped text-center">
 21             <thead>
 22                 <tr>
 23                     <th><input type="checkbox" class="all"/>全选</th>
 24                     <th>发件人</th>
 25                     <th>邮件</th>
 26                     <th>邮件信息</th>
 27                 </tr>
 28             </thead>
 29             <tbody>
 30                 <tr>
 31                     <td><input type="checkbox" class="tdInput" /></td>
 32                     <td>A1</td>
 33                     <td>A2</td>
 34                     <td>A3</td>
 35                 </tr>
 36                 <tr>
 37                     <td><input type="checkbox" class="tdInput" /></td>
 38                     <td>B1</td>
 39                     <td>B2</td>
 40                     <td>B3</td>
 41                 </tr>
 42             </tbody>
 43             <tfoot>
 44                 <tr>
 45                     <td><input type="checkbox" class="all"/>全选</td>
 46                     <td colspan="3">
 47                         <button class="cancelAll">取消全选</button>
 48                         <button class="inverse">反选</button>
 49                         <button class="del">删除所选</button>
 50                         <button class="addTr">增加</button>
 51                     </td>
 52                 </tr>
 53             </tfoot>
 54         </table>
 55         
 56         <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
 57         <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
 58         <script type="text/javascript">
 59             $(function(){
 60                 var all = $('.all');
 61                 var cancelAll = $('.cancelAll');
 62                 var inverse = $('.inverse');
 63                 var del = $('.del');
 64                 var addTr = $('.addTr');
 65                 var tdInput = $('.tdInput');
 66                 
 67                 //全选
 68                 all.click(function(){
 69                     if(this.checked){
 70                         all.prop('checked',true);
 71                         tdInput.prop('checked',true);
 72                     }else{
 73                         all.prop('checked',false);
 74                         tdInput.prop('checked',false);
 75                     }
 76                 })
 77                 
 78                 //取消全选
 79                 cancelAll.click(function(){
 80                     all.prop('checked',false);
 81                     tdInput.prop('checked',false);
 82                 })
 83                 
 84                 //反选
 85                 inverse.click(function(){
 86                     $('.tdInput').prop('checked',function(index,value){
 87                         return !value;
 88                     })
 89                     if($('.tdInput:checked').length == tdInput.length){
 90                         all.prop('checked',true);
 91                     }else{
 92                         all.prop('checked',false);
 93                     }
 94                 })
 95                 
 96                 $.each(tdInput,function(index,value){
 97                     $(this).click(function(){
 98                         if($('.tdInput:checked').length == tdInput.length){
 99                             all.prop('checked',true);
100                         }else{
101                             all.prop('checked',false);
102                         }
103                     })
104                 })
105                 
106                 //删除所选
107                 del.click(function(){
108                     $('.tdInput:checked').parent().parent().remove();
109                     tdInput = $('.tdInput');
110                 })
111                 
112                 //添加
113                 addTr.click(function(){
114                     var now_tr = $('tbody tr');
115                     var now_tr_char = $('tbody tr').eq(now_tr.length-1).find('td').eq(1).text().charCodeAt(0);//转换成ASCII码
116                     if(now_tr_char ==  90){//Z的ASCII码为90
117                         alert('增加到这里就行了,别玩了!')
118                         return false;
119                     }
120                     var add_tr_char = String.fromCharCode(now_tr_char+1);//ASCII码转换成字符串
121                     $('tbody').append('<tr><td><input type="checkbox" class="tdInput" /></td><td>'+ add_tr_char +'1</td><td>'+ add_tr_char +'2</td><td>'+ add_tr_char +'3</td></tr>');
122                     tdInput = $('.tdInput');//重新获取tdInput节点数量
123                     //为添加后所有的tdInput增加点击事件
124                     $.each(tdInput,function(index,value){
125                         $(this).click(function(){
126                             if($('.tdInput:checked').length == tdInput.length){
127                                 all.prop('checked',true);
128                             }else{
129                                 all.prop('checked',false);
130                             }
131                         })
132                     })
133                     if($('.tdInput:checked').length == tdInput.length){
134                         all.prop('checked',true);
135                     }else{
136                         all.prop('checked',false);
137                     }
138                 })
139             })
140         </script>
141     </body>
142 </html>

效果图:

 

转载于:https://www.cnblogs.com/webwrangler/p/8880398.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了实现Vue动态表格全选反选功能,可以使用两种方法:通过methods方法实现和通过computed计算属性实现。 使用methods方法实现: 1. 首先,在Vue中引入Vue库:<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script> 2. 接着编写静态布局,包括表格和复选框等元素。 3. 挂载DOM,将Vue实例挂载到HTML中的一个元素上。 4. 添加指令,给全选的复选框绑定一个click事件,触发一个methods中的方法。 5. 在数据中存储需要操作的数据,包括表格数据和全选状态。 6. 在methods中实现全选反选的方法,根据点击事件修改全选状态和表格数据的选中状态。 7. 最后实现效果,当点击全选复选框时,表格中的所有复选框都会被选中或取消选中。 使用computed计算属性实现: 1. 首先,在Vue中引入Vue库:<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script> 2. 接着编写静态布局,包括表格和复选框等元素。 3. 挂载DOM,将Vue实例挂载到HTML中的一个元素上。 4. 添加指令,给全选的复选框绑定一个click事件,触发一个computed中的计算属性方法。 5. 在数据中存储需要操作的数据,包括表格数据和全选状态。 6. 在computed中实现计算属性方法,根据全选状态和表格数据的选中状态来计算全选复选框的选中状态。 7. 最后实现效果,当点击全选复选框时,表格中的所有复选框都会被选中或取消选中。 综上所述,可以根据个人喜好选择使用methods方法或computed计算属性方法来实现Vue动态表格全选反选功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [vue实现全选反选](https://blog.csdn.net/zhao_li_ming/article/details/120607414)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [Vue计算属性computed,全选反选案例](https://blog.csdn.net/qq_45025670/article/details/126268754)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值