jQuery中获取checkbox选中项等操作及注意事项


Posted in Javascript onNovember 24, 2013

1. 获取checkbox的选中项
2. checkbox选项的全选 反选操作

用于测试的checkbox代码段:

<div>
            <input type="checkbox" name="abc" value="一年级" id="in1" checked="checked" /><label for="in1">一年级</label>
            <input type="checkbox" name="abc" value="二年级" id="in2" /><label for="in2">二年级</label>
            <input type="checkbox" name="abc" value="三年级" id="in3" /><label for="in3">三年级</label>
            <input type="checkbox" name="abc" value="四年级" id="in4" /><label for="in4">四年级</label>
            <input type="checkbox" name="abc" value="五年级" id="in5" /><label for="in5">五年级</label>
            <input type="checkbox" name="abc" value="六年级" id="in6" /><label for="in6">六年级</label>
            <input type="checkbox" name="abc" value="七年级" id="in7" /><label for="in7">七年级</label>
            <input type="checkbox" name="abc" value="八年级" id="in8" /><label for="in8">八年级</label>
        </div>

一:首先来说第一点,获取checkbox的选中项。网上搜到的大部分方法使用each来获取:

$("input[name='checkbox'][checked]").each(function () {
    alert(this.value);
})
但在测试时我就遇到了问题,这种方法在IE下可以获取,但在firefox和chrome浏览器下就无法获取当前的选中项,测试效果如下:

IE下的测试效果(我的是IE10):

jQuery中获取checkbox选中项等操作及注意事项

IE10下的效果:

jQuery中获取checkbox选中项等操作及注意事项

chrome浏览器下的效果:

jQuery中获取checkbox选中项等操作及注意事项

通过在google上搜索,找到了原因:

jQuery中获取checkbox选中项等操作及注意事项

网址:  Jquery 选中多少个input CheckBox问题,IE正常,FF和Chrome无法取到值

jQuery中获取checkbox选中项等操作及注意事项

因为我用的jquery版本是1.7.2的,所以这里我得用 :checked 来获取才行,修改后的代码:

//获取选中项
            $('#huoqu2').click(function () {
                $('#show').html("");
                $("input[name='abc']:checked").each(function () {
                    //alert(this.value);
                    $('#show').append(this.value + "  ");
                });
            });

在chrome下的效果:

jQuery中获取checkbox选中项等操作及注意事项

二:checkbox的全选 反选操作:

由于这两个比较简单,我就直接上代码吧:

//全选/取消全选
            $('#quanxuan').toggle(function () {
                $("input[name='abc']").attr("checked", 'true');
            }, function () {
                $("input[name='abc']").removeAttr("checked");
            });

            //反选
            $('#fanxuan').click(function () {
                $("input[name='abc']").each(function () {
                    if ($(this).attr("checked")) {
                        $(this).removeAttr("checked");
                    } else {
                        $(this).attr("checked", 'true');
                    }
                });
            });

再总结一下:

jquery版本在1.3之前时,获取checkbox的选中项的操作:

                $("input[name='abc'][checked]").each(function () {
                    alert(this.value);
                });

jquery版本在1.3之后时,获取checkbox的选中项的操作:

                $("input[name='abc']:checked").each(function () {
                    alert(this.value);
                });
 

附 完整测试Demo代码:


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <script src="js/jquery-1.7.2.min.js"></script>
    <script>
        $(function () {
            //获取选中项(FF和chrome下无效)
            $('#huoqu').click(function () {
                //$("input[name='abc'][checked]").each(function () {
                //    alert(this.value);
                //});
                $('#show').html("");
                $("input[name='abc'][checked]").each(function () {
                    //alert(this.value);
                    $('#show').append(this.value + "  ");
                });
            });

            //获取选中项
            $('#huoqu2').click(function () {
                $('#show').html("");
                $("input[name='abc']:checked").each(function () {
                    //alert(this.value);
                    $('#show').append(this.value + "  ");
                });
            });

            //全选/取消全选
            $('#quanxuan').toggle(function () {
                $("input[name='abc']").attr("checked", 'true');
            }, function () {
                $("input[name='abc']").removeAttr("checked");
            });

            //反选
            $('#fanxuan').click(function () {
                $("input[name='abc']").each(function () {
                    if ($(this).attr("checked")) {
                        $(this).removeAttr("checked");
                    } else {
                        $(this).attr("checked", 'true');
                    }
                });
            });
        });
    </script>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <input type="checkbox" name="abc" value="一年级" id="in1" checked="checked" /><label for="in1">一年级</label>
            <input type="checkbox" name="abc" value="二年级" id="in2" /><label for="in2">二年级</label>
            <input type="checkbox" name="abc" value="三年级" id="in3" /><label for="in3">三年级</label>
            <input type="checkbox" name="abc" value="四年级" id="in4" /><label for="in4">四年级</label>
            <input type="checkbox" name="abc" value="五年级" id="in5" /><label for="in5">五年级</label>
            <input type="checkbox" name="abc" value="六年级" id="in6" /><label for="in6">六年级</label>
            <input type="checkbox" name="abc" value="七年级" id="in7" /><label for="in7">七年级</label>
            <input type="checkbox" name="abc" value="八年级" id="in8" /><label for="in8">八年级</label>
        </div>
        <br />
        <input type="button" id="huoqu" value="获取选中项(FF和chrome下无效)" />
        <input type="button" id="quanxuan" value="全选/取消全选" />
        <input type="button" id="fanxuan" value="反选" />
        <input type="button" id="huoqu2" value="获取选中项" />
       <br />
        选中项: <div id="show">
        </div>
    </form>
</body>
</html>

作者:酷小孩

Javascript 相关文章推荐
jQuery的三种$()
Dec 30 Javascript
基于jQuery的可以控制左右滚动及自动滚动效果的代码
Jul 25 Javascript
js 关于=+与+=日期函数使用说明(赋值运算符)
Nov 15 Javascript
JS事件在IE与FF中的区别详细解析
Nov 20 Javascript
javascript学习笔记--数字格式类型
May 22 Javascript
超级好用的jQuery圆角插件 Corner速成
Aug 31 Javascript
DOM 高级编程
May 06 Javascript
jQuery学习笔记之回调函数
Aug 15 Javascript
JavaScript中EventLoop介绍
Jan 22 Javascript
Vue.js 利用v-for中的index值实现隔行变色
Aug 01 Javascript
浅析Angular 实现一个repeat指令的方法
Jul 21 Javascript
koa2 从入门到精通(小结)
Jul 23 Javascript
javascript 弹出的窗口返回值给父窗口具体实现
Nov 23 #Javascript
javascript 实现字符串反转的三种方法
Nov 23 #Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
Nov 23 #Javascript
jquery实现图片滚动效果的简单实例
Nov 23 #Javascript
js图片向右一张张滚动效果实例代码
Nov 23 #Javascript
JavaScript实现简单的时钟实例代码
Nov 23 #Javascript
JS控制日期显示的小例子
Nov 23 #Javascript
You might like
如何把PHP转成EXE文件
2006/10/09 PHP
CodeIgniter php mvc框架 中国网站
2008/05/26 PHP
PHP file_get_contents 函数超时的几种解决方法
2009/07/30 PHP
PHP中的integer类型使用分析
2010/07/27 PHP
PHP提示Notice: Undefined variable的解决办法
2012/11/24 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
2015/03/02 PHP
适用于初学者的简易PHP文件上传类
2015/10/29 PHP
PHP 文件锁与进程锁的使用示例
2017/08/07 PHP
jquery学习笔记 用jquery实现无刷新登录
2011/08/08 Javascript
jquery如何改变html标签的样式(两种实现方法)
2013/01/16 Javascript
extjs中form与grid交互数据(record)的方法
2013/08/29 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
2014/04/03 Javascript
jQuery实现信息提示框(带有圆角框与动画)效果
2015/08/07 Javascript
js实现鼠标点击文本框自动选中内容的方法
2015/08/20 Javascript
ashx文件获取$.ajax()方法发送的数据
2016/05/26 Javascript
jQuery数组处理函数整理
2016/08/03 Javascript
基于JavaScript实现的插入排序算法分析
2017/04/14 Javascript
javaScript中封装的各种写法示例(推荐)
2017/07/03 Javascript
Django+Vue.js搭建前后端分离项目的示例
2017/08/07 Javascript
Vue2.0实现将页面中表格数据导出excel的实例
2017/08/09 Javascript
vue2.0设置proxyTable使用axios进行跨域请求的方法
2017/10/19 Javascript
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
2018/03/13 Javascript
JavaScript使用面向对象实现的拖拽功能详解
2019/06/12 Javascript
javascript实现贪吃蛇游戏(娱乐版)
2020/08/17 Javascript
[39:18]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第二场 12.17
2020/12/19 DOTA
详解Python中的序列化与反序列化的使用
2015/06/30 Python
Python简单实现子网掩码转换的方法
2016/04/13 Python
python制作爬虫爬取京东商品评论教程
2016/12/16 Python
精美的手工家居和生活用品:Nkuku
2019/11/01 全球购物
师范生自荐信
2013/10/27 职场文书
住房公积金接收函
2014/01/09 职场文书
保护水资源的标语
2014/06/17 职场文书
应聘教师求职信
2014/07/19 职场文书
开学典礼观后感
2015/06/15 职场文书
小组口号霸气押韵
2015/12/24 职场文书
详解CSS伪元素的妙用单标签之美
2021/05/25 HTML / CSS