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 相关文章推荐
js+FSO遍历文件夹下文件并显示
Mar 07 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
Dec 23 Javascript
JQuery中操作Css样式的方法
Feb 12 Javascript
深入浅出ES6之let和const命令
Aug 25 Javascript
js获取时间函数及扩展函数的方法
Oct 30 Javascript
8 行 Node.js 代码实现代理服务器
Dec 05 Javascript
javascript实现Emrips反质数枚举的示例代码
Dec 06 Javascript
vue定义全局变量和全局方法的方法示例
Aug 01 Javascript
基于JavaScript获取base64图片大小
Oct 18 Javascript
浅谈Vue SSR中的Bundle的具有使用
Nov 21 Javascript
JavaScript多种滤镜算法实现代码实例
Dec 10 Javascript
vue 限制input只能输入正数的操作
Aug 05 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
无线电广播与收音机发展的历史回眸
2021/03/02 无线电
解析ajax事件的调用顺序
2013/06/17 PHP
php导出word格式数据的代码实例
2013/11/25 PHP
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
2012/06/28 Javascript
一个很有趣3D球状标签云兼容IE8
2014/08/22 Javascript
基于jquery实现瀑布流布局
2020/06/28 Javascript
JS动态插入并立即执行回调函数的方法
2016/04/21 Javascript
Knockoutjs 学习系列(一)ko初体验
2016/06/07 Javascript
jQuery.ajax实现根据不同的Content-Type做出不同的响应
2016/11/03 Javascript
Javascript中字符串replace方法的第二个参数探究
2016/12/05 Javascript
jQuery为某个div加入行样式
2017/06/09 jQuery
Es6 Generator函数详细解析
2018/02/24 Javascript
一起写一个即插即用的Vue Loading插件实现
2019/10/31 Javascript
javascript 设计模式之组合模式原理与应用详解
2020/04/08 Javascript
Python获取电脑硬件信息及状态的实现方法
2014/08/29 Python
python常见数制转换实例分析
2015/05/09 Python
Python随机生成数据后插入到PostgreSQL
2016/07/28 Python
Django实现简单分页功能的方法详解
2017/12/05 Python
Python利用openpyxl库遍历Sheet的实例
2018/05/03 Python
python判断数字是否是超级素数幂
2018/09/27 Python
Python 使用 prettytable 库打印表格美化输出功能
2019/12/26 Python
Python标准库shutil模块使用方法解析
2020/03/10 Python
在echarts中图例legend和坐标系grid实现左右布局实例
2020/05/16 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
2020/07/03 Python
Python高并发和多线程有什么关系
2020/11/14 Python
基础的CSS3弹性盒Flexbox布局使用实例
2016/04/08 HTML / CSS
HTML5中input输入框默认提示文字向左向右移动的示例代码
2020/09/10 HTML / CSS
个性化皮包、小袋、生活配件:Mon Purse
2019/03/26 全球购物
大学生就业推荐信范文
2013/11/29 职场文书
党的群众路线教育实践活动公开承诺书
2014/03/28 职场文书
幼儿园教师师德师风演讲稿:我自豪我是一名幼师
2014/09/10 职场文书
体育运动会广播稿
2014/10/05 职场文书
期末个人总结范文
2015/02/13 职场文书
开天辟地观后感
2015/06/09 职场文书
Redis延迟队列和分布式延迟队列的简答实现
2021/05/13 Redis
使用Mysql计算地址的经纬度距离和实时位置信息
2022/04/29 MySQL