table通过每行的checkbox(多个)判断选中的行并把数据储存成json格式
一、通过查找数组里是否存在选中的数据来操作:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>checkbox</title> <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script> </head> <body> <input type="checkbox" onclick="ck("111")">111 <input type="checkbox" onclick="ck("222")">222 <input type="checkbox" onclick="ck("333")">333 <input type="checkbox" onclick="ck("444")">444 </body> <script> var selectedList =[]; function ck(v) { var hasS = false; for (var i = 0; i < selectedList.length; i++) { if (selectedList[i] == v) { selectedList.splice(i, 1); hasS = true; } } if(!hasS){ selectedList.push(v); } } </script> </html>
以上方法针对每条数据都是独一无二的,修改了一下就好了
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>checkbox</title> <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script> </head> <body> <input type="checkbox" onclick="ck("111",this)"> <input type="checkbox" onclick="ck("111",this)"> <input type="checkbox" onclick="ck("333",this)"> <input type="checkbox" onclick="ck("444",this)"> </body> <script> var selectedList =[]; function ck(v,n) { if(n.checked){ selectedList.push(v); }else { for (var i = 0; i < selectedList.length; i++) { if (selectedList[i] == v) { selectedList.splice(i, 1); } } } } </script> </html>
二、因为我使用了angular那就写法又可以这样:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>checkbox</title> <script src="../js/angular.js"></script> <script src="../js/jquery.min.js"></script> </head> <body ng-app="myNg" ng-controller="ngCtrl"> <input type="checkbox" ng-model="selectState" ng-click="ck(item.text,selectState)" ng-repeat="item in arr"> </body> <script> angular.module("myNg",[]).controller("ngCtrl",function($scope,$log) { $scope.arr= [{text:"111"},{text:"222"},{text:"333"},{text:"444"}]; $scope.selectedList = []; $scope.selectState =false; $scope.ck =function(v,stu) { if(stu){ $scope.selectedList.push(v); }else { for (var i = 0; i < $scope.selectedList.length; i++) { if ($scope.selectedList[i] == v) { $scope.selectedList.splice(i, 1); } } //或者JQ的 //$scope.selectedList.splice($.inArray(v, $scope.selectedList), 1); } } }) </script> </html>
或者ng-click="ck($event)"用$event,我们可以传入 event,然后在函数里面通过event,然后在函数里面通过event.target 来获取到该元素。
<div ng-repeat="item in array"> <input type="checkbox" ng-click="choose($event,item.name)"> {{item.name}} </div>
$scope.choose =function ($event,name) { if($event.target.checked){ $scope.check.push(name); }else { for(var i=0;i<=$scope.check.length;i++){ if($scope.check[i] ==name){ $scope.check.splice(i,1); } } } console.log($scope.check); }
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇:没有了