一、实现全选/全部不选的功能
首先对于批量操作,在我们的学习和工作中是非常常见的,因为经常使用,所以总结一下。
如何达到如下效果?
首先看一下表单中的checkbox:
数据遍历:(checkbox可以使用class、name去标识,不要使用id,因为id具有唯一性)
实现全选与全不选的js的方式有很多种,下面提供两种方法:
1.方法一
function checkAll() {
var all=document.getElementById('checkAll');//获取到点击全选的那个复选框的id
var one=document.getElementsByClassName('empId');//获取到复选框的名称
if(all.checked==true){//因为获得的是数组,所以要循环 为每一个checked赋值
for(var i=0;i<one.length;i++){
one[i].checked=true;
}
}else{
for(var j=0;j<one.length;j++){
one[j].checked=false;
}
}
}
2.方法二
更改一下input中checkAll()方法
实现的js:
function checkAll(obj){
if($(obj).is(":checked")==false){ //判断当前对象如果被选中,则选中所有的复选框
$(".empId").each(function(i,e){
$(e).attr("checked",false);
});
}else{ //判断当前对象未被选中,则全部不选中
$(".empId").each(function(i,e){
$(e).attr("checked",true);
});
}
}
:checked 选择器表示选取所有选中的复选框。
二、批量删除的实现
对于批量操作,最常见的就是批量删除,下面来实现一下批量删除。
思路:首先根据勾选的id,根据js拼接成字符串,最后将字符串传到Service层,将字符串进行切割,此时有两种方式进行处理,第一种是根据id进行删除,在service去遍历切割后的的id;第二种是将切割过后的id数组直接传到dao层,在数据库进行处理。
实现批量删除的js:
//删除操作
function remove(){
if($(".empId:checked").val()==null){
alertx("请先勾选员工");
}else {
//批量删除 1,2,3...
var ids = "";
$(".empId:checked").each(function(i,e){
if(i==0){
ids=$(e).val();
}else{
ids+=","+$(e).val();
}
});
if (ids.indexOf(",")==-1) {
confirmx('确认要删除该员工吗?', function(){
window.location.href="${ctx}/hms/employee/batchdelete?ids="+ids+"";
});
}else {
confirmx('确认要删除这些员工吗?', function(){
window.location.href="${ctx}/hms/employee/batchdelete?ids="+ids+"";
});
}
}
}
1.方法一
service层处理:
删除的sql:
2.方法二
service层处理:

删除的sql: