jquery和bootstrap获取checkbox选中的多行数据

在项目中,经常遇到,于是整理

引用bootstrap的js和css

代码解释:

$("#dgFlowList").find(":checkbox:checked").each(function(){
  var val = $(this).parents("tr").text();
  data.push(val);
});

 

代码:

 1 <html>
 2 <head>
 3     <title>多选title>
 4     <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
 5     <link rel="stylesheet" href="bootstrap/css/bootstrap-theme.min.css">
 6     <script src="js/jquery.min.js">script>
 7     <script src="js/app.js">script>
 8     <script src="bootstrap/js/bootstrap.js">script>
 9     <script type="text/javascript">
10         $(document).ready(function () {
11                 $("#select_button").on('click',function(){
12                 var checkids = [];
13                 var data = [];
14                 $("input[name='ckb']:checked").each(function(i){
15                     checkids[i] = $(this).val();
16                 });
17                 if(checkids.length<=0){
18                     $.notify('请选择请假单',{status: "danger"});
19                 }else{
20                         console.log(checkids);
21                         $("#dgFlowList").find(":checkbox:checked").each(function(){
22                         var val = $(this).parents("tr").text();
23                         data.push(val);
24                     });
25                     console.log(data);
26                 }
27             });
28         });
29         
30         function deleteCurrentRow(obj){
31             var tr=obj.parentNode.parentNode;
32             var tbody=tr.parentNode;
33             tbody.removeChild(tr);
34             //只剩行首时删除表格
35             if(tbody.rows.length==0) {
36                 tbody.parentNode.removeChild(tbody);
37             }
38         }
39     script>
40     
41 head>
42 <body>
43     <table cellspacing="0" rules="all" bordercolor="#CCCCCC" border="1" id="dgFlowList" 
44     style="border-color:#CCCCCC;border-width:1px;border-style:solid;width:98%;border-collapse:collapse;MARGIN: 5px 0px">
45         <tr class="DataGrid_HeaderStyle" nowrap="nowrap" align="Center">
46             <th>th><th>流程名称th><th>表单名称th><th>操作th>
47         tr>
48         <tr>
49             <td><input type="checkbox" name="ckb" value="1">td>
50             <td style="width:35%;">请假单1td>
51             <td style="width:35%;">请假单td>
52             <td align="Center" style="width:20%;">
53             <a href="javascript:;" onclick='deleteCurrentRow(this)'>删除a>
54             td>
55         tr>
56         <tr>
57             <td><input type="checkbox" name="ckb" value="2">td>
58             <td style="width:35%;">请假单2td>
59             <td style="width:35%;">请假单td>
60             <td align="Center" style="width:20%;">
61             <a href="javascript:;" onclick='deleteCurrentRow(this)'>删除a>
62             td>
63         tr>
64         <tr>
65             <td><input type="checkbox" name="ckb" value="3">td>
66             <td style="width:35%;">请假单3td>
67             <td style="width:35%;">请假单td>
68             <td align="Center" style="width:20%;">
69             <a href="javascript:;" onclick='deleteCurrentRow(this)'>删除a>
70             td>
71         tr>
72         <tr>
73             <td><input type="checkbox" name="ckb" value="4">td>
74             <td style="width:35%;">请假单4td>
75             <td style="width:35%;">请假单td>
76             <td align="Center" style="width:20%;">
77             <a href="javascript:;" onclick='deleteCurrentRow(this)'>删除a>
78             td>
79         tr>
80         <tr>
81             <td><input type="checkbox" name="ckb" value="5">td>
82             <td style="width:35%;">请假单5td>
83             <td style="width:35%;">请假单td>
84             <td align="Center" style="width:20%;">
85             <a href="javascript:;" onclick='deleteCurrentRow(this)'>删除a>
86             td>
87         tr>
88     table>
89     <div align="center">
90         <button type="button" class="btn btn-primary" id="select_button"> 多选button>
91     div>
92 body>
93 html>

app.js代码,是为notify写的,于功能没有多大的关系

  1 /**
  2  * Notify Addon definition as jQuery plugin
  3  * Adapted version to work with Bootstrap classes
  4  * More information http://getuikit.com/docs/addons_notify.html
  5  */
  6 
  7 (function ($, window, document) {
  8 
  9     var containers = {},
 10         messages = {},
 11 
 12         notify = function (options) {
 13 
 14             if ($.type(options) == 'string') {
 15                 options = {message: options};
 16             }
 17 
 18             if (arguments[1]) {
 19                 options = $.extend(options, $.type(arguments[1]) == 'string' ? {status: arguments[1]} : arguments[1]);
 20             }
 21 
 22             return (new Message(options)).show();
 23         },
 24         closeAll = function (group, instantly) {
 25             if (group) {
 26                 for (var id in messages) {
 27                     if (group === messages[id].group) messages[id].close(instantly);
 28                 }
 29             } else {
 30                 for (var id in messages) {
 31                     messages[id].close(instantly);
 32                 }
 33             }
 34         };
 35 
 36     var Message = function (options) {
 37 
 38         var $this = this;
 39 
 40         this.options = $.extend({}, Message.defaults, options);
 41 
 42         this.uuid = "ID" + (new Date().getTime()) + "RAND" + (Math.ceil(Math.random() * 100000));
 43         this.element = $([
 44             // alert-dismissable enables bs close icon
 45             '
', 46 '×', 47 '
' + this.options.message + '
', 48 '
' 49 50 ].join('')).data("notifyMessage", this); 51 52 // status 53 if (this.options.status) { 54 this.element.addClass('alert alert-' + this.options.status); 55 this.currentstatus = this.options.status; 56 } 57 58 this.group = this.options.group; 59 60 messages[this.uuid] = this; 61 62 if (!containers[this.options.pos]) { 63 containers[this.options.pos] = $('
this.options.pos + '">
').appendTo('body').on("click", ".uk-notify-message", function () { 64 $(this).data("notifyMessage").close(); 65 }); 66 } 67 }; 68 69 70 $.extend(Message.prototype, { 71 72 uuid: false, 73 element: false, 74 timout: false, 75 currentstatus: "", 76 group: false, 77 78 show: function () { 79 80 if (this.element.is(":visible")) return; 81 82 var $this = this; 83 84 containers[this.options.pos].show().prepend(this.element); 85 86 var marginbottom = parseInt(this.element.css("margin-bottom"), 10); 87 88 this.element.css({ 89 "opacity": 0, 90 "margin-top": -1 * this.element.outerHeight(), 91 "margin-bottom": 0 92 }).animate({"opacity": 1, "margin-top": 0, "margin-bottom": marginbottom}, function () { 93 94 if ($this.options.timeout) { 95 96 var closefn = function () { 97 $this.close(); 98 }; 99 100 $this.timeout = setTimeout(closefn, $this.options.timeout); 101 102 $this.element.hover( 103 function () { 104 clearTimeout($this.timeout); 105 }, 106 function () { 107 $this.timeout = setTimeout(closefn, $this.options.timeout); 108 } 109 ); 110 } 111 112 }); 113 114 return this; 115 }, 116 117 close: function (instantly) { 118 119 var $this = this, 120 finalize = function () { 121 $this.element.remove(); 122 123 if (!containers[$this.options.pos].children().length) { 124 containers[$this.options.pos].hide(); 125 } 126 127 delete messages[$this.uuid]; 128 }; 129 130 if (this.timeout) clearTimeout(this.timeout); 131 132 if (instantly) { 133 finalize(); 134 } else { 135 this.element.animate({ 136 "opacity": 0, 137 "margin-top": -1 * this.element.outerHeight(), 138 "margin-bottom": 0 139 }, function () { 140 finalize(); 141 }); 142 } 143 }, 144 145 content: function (html) { 146 147 var container = this.element.find(">div"); 148 149 if (!html) { 150 return container.html(); 151 } 152 153 container.html(html); 154 155 return this; 156 }, 157 158 status: function (status) { 159 160 if (!status) { 161 return this.currentstatus; 162 } 163 164 this.element.removeClass('alert alert-' + this.currentstatus).addClass('alert alert-' + status); 165 166 this.currentstatus = status; 167 168 return this; 169 } 170 }); 171 172 Message.defaults = { 173 message: "", 174 status: "normal", 175 timeout: 5000, 176 group: null, 177 pos: 'top-center' 178 }; 179 180 181 $["notify"] = notify; 182 $["notify"].message = Message; 183 $["notify"].closeAll = closeAll; 184 185 return notify; 186 187 }(jQuery, window, document));
View Code

 

jquery和bootstrap获取checkbox选中的多行数据_第1张图片

 

转载于:https://www.cnblogs.com/invban/p/8568980.html

你可能感兴趣的:(javascript,json)