jquery实现复选框(checkbox)的全选与反选
下面介绍一下jquery实现checkbox的全选与反选。其实这个在网上已经有诸多实现了,我只是也来凑合凑合,没别的意思,只是不想把这个功能写个多复杂,尽量按照自己的理解简单化。简单、而且功能又实用,我觉得就足够了!
对于复选框的全选与反选,其实用的最多的是在于批量删除的时候,就像我这篇博客介绍的那样:打开链接,其中的success.jsp其实已经介绍了!全选与反选,其实它只是一个动态的效果,我们其实想要的是获取被选中的那些item的id,以便实现我们实际的功能性需求:“批量删除”。
好了,废话少说,我直接上代码吧!对了,你需要在eclipse建立一个动态的web工程,然后可以直接将下面的页面代码贴进你新建的一个称为index.jsp或者index.html中,当然啦,你需要jquery的库,在这里我用的jquery-1.7.3-min.js。其中,我还把如何获取被选中的所有的id也实现了!诸位博友可以参考!
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>全选与反选</title>
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
<script type="text/javascript">
$(function(){
//实现全选与反选
$("#allAndNotAll").click(function() {
if (this.checked){
$("input[name='items']:checkbox").each(function(){
$(this).attr("checked", true);
});
} else {
$("input[name='items']:checkbox").each(function() {
$(this).attr("checked", false);
});
}
});
//获取被选中的id
var ids=[];
$('#getAllSelectedId').click(function(){
$("input[name='items']:checked").each(function(){
ids.push($(this).attr("id"));
});
var delIds=ids.join(",");
console.log(delIds);
//可以将delIds通过jquery ajax传到后台了,在后台采用String接收这个delIds参数,然后采用split(",")分隔得到一个
//String[]的id数组。可以参考我的博客:http://blog.csdn.net/u013871100/article/details/52740061
});
});
</script>
</head>
<body>
员工列表:<br><br>
<input type="checkbox" name=items id="001"/>刘德华 <br>
<input type="checkbox" name=items id="002"/>张学友 <br>
<input type="checkbox" name=items id="003"/>黎明 <br>
<input type="checkbox" name=items id="004"/>郭富城 <br>
<br><br>
<input type="checkbox" id="allAndNotAll" />全选/反选<br><br>
<input type="button" id="getAllSelectedId" value="获取被选中的id"/><br>
</body>
</html>
下面是运行效果,点击“全选/反选”,可以看到效果,点击“获取被选中的id”,按F12可以看到浏览器的console端输出了被选中的id,当然啦,你也可以单独选几个,然后点击“ 获取被选中的id”, 按F12依旧可以看到哪些被选中了!
好了,就介绍到这里吧,有疑问的博友可以在下面留言!
看书,学习了另外的一种方式相当简洁!!
//全选与反选方式二
$("#allAndNotAll").click(function() {
var flag=this.checked;
$(":checkbox[name='items']").attr('checked',flag);
});
//而且还实现了:当其中不勾选某一个选项的时候,则去掉全选复选框
$(":checkbox[name='items']").click(function(){
$("#allAndNotAll").attr('checked',
$(":checkbox[name='items']").length==$(":checkbox[name='items']:checked").length);
});
jquery真是够劲啊!!