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的冒泡事件的阻止与允许(三种实现方法)
Feb 01 Javascript
JavaScript和JQuery的鼠标mouse事件冒泡处理
Jun 19 Javascript
使用AngularJS创建单页应用的编程指引
Jun 19 Javascript
javascript日期格式化方法汇总
Oct 04 Javascript
jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)
Jun 28 Javascript
深入浅析JS Function()构造函数
Aug 22 Javascript
利用PM2部署node.js项目的方法教程
May 10 Javascript
各种选择框jQuery的选中方法(实例讲解)
Jun 27 jQuery
jQuery常见的遍历DOM操作详解
Sep 05 jQuery
详解auto-vue-file:一个自动创建vue组件的包
Apr 26 Javascript
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
Jul 03 Javascript
vue基本使用--refs获取组件或元素的实例
Nov 07 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
判“新”函数:得到今天与明天的秒数
2006/10/09 PHP
深入理解用mysql_fetch_row()以数组的形式返回查询结果
2013/06/05 PHP
php跨域cookie共享使用方法
2014/02/20 PHP
PHP+MYSQL实现读写分离简单实战
2017/03/13 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
SUN的《AJAX与J2EE》全文译了
2007/02/23 Javascript
表单填写时用回车代替TAB的实现方法
2007/10/09 Javascript
jquery 学习之二 属性 文本与值(text,val)
2010/11/25 Javascript
JavaScript自执行闭包的小例子
2013/06/29 Javascript
JavaScript常用全局属性与方法记录积累
2013/07/03 Javascript
Knockout visible绑定使用方法
2013/11/15 Javascript
JavaScript实现简单获取当前网页网址的方法
2015/11/09 Javascript
有关jQuery中parent()和siblings()的小问题
2016/06/01 Javascript
微信小程序 less文件编译成wxss文件实现办法
2016/12/05 Javascript
nodejs的压缩文件模块archiver用法示例
2017/01/18 NodeJs
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
2017/02/10 Javascript
原生JS实现图片懒加载(lazyload)实例
2017/06/13 Javascript
深入探究AngularJs之$scope对象(作用域)
2017/07/20 Javascript
如何理解Vue的render函数的具体用法
2017/08/30 Javascript
使用clipboard.js实现复制功能的示例代码
2017/10/16 Javascript
vue设置全局访问接口API地址操作
2020/08/14 Javascript
使用js和canvas实现时钟效果
2020/09/08 Javascript
[03:14]DOTA2斧王 英雄基础教程
2013/11/26 DOTA
python3连接MySQL数据库实例详解
2018/05/24 Python
Django3中的自定义用户模型实例详解
2020/08/23 Python
Python可视化工具如何实现动态图表
2020/10/23 Python
婚庆公司的创业计划书
2014/01/22 职场文书
环保建议书400字
2014/05/14 职场文书
销售员态度差检讨书
2014/10/26 职场文书
2015年度电厂个人工作总结
2015/05/13 职场文书
运动会加油稿30字
2015/07/21 职场文书
教师节主题班会教案
2015/08/17 职场文书
《狮子和鹿》教学反思
2016/02/16 职场文书
25句企业管理语录:助你迅速打开思路,句句经典!
2020/01/14 职场文书
go类型转换及与C的类型转换方式
2021/05/05 Golang
动态规划之使用备忘录来改进Javascript函数
2022/04/07 Javascript