Jquery 获取checkbox的checked问题

本文转载于博客园:
http://www.cnblogs.com/-run/archive/2011/11/16/2251250.html
这个郁闷了,今天写这个功能的时候发现了问题,上网找了好多资料对照,更加纠结。。。

事实证明一切,自己测试了N遍,发现网上的说法和自己以前的理解都是错的,不知道大家有没发现.

下面来看看网上大多资料的说法

转别人的一些东西:

jquery判断checkbox是否被选中

在html的checkbox里,选中的话会有属性checked=”checked”。

如果用一个checkbox被选中,alert这个checkbox的属性"checked"的值*alert($(#xxx).attr("checked")),会打印出"true",而不是"checked"!*

如果没被选中,打印出的是”undefined”。
注意斜体部分的部分,这里说到

$("#chekbox").sttr("checked")//should be print "true" ,  not "checked" 

经过测试,证明上面说法有问题

<script type="text/javascript">
    $(function() { 
        $("#button").click(function() { 
            alert($("#checkbox").attr("checked"));
        });
    });
</script>

<input type="checkbox" name="checkbox" id="checkbox"><input type="button" id="button" value="Click Me">


//上面得出的结果是: 如果勾上checkbox,会打印出 “checked” , 如果取消打勾 会打印出 "undefined"

实验证明Jquery获取checked的值得打印出”true”是错误的

举一反三:

而且发现Jquery获取已经被勾上的checkbox,永远都是”checked” 这让人费解,如果有人知道为什么,可以告诉我一下,哈~

<script type="text/javascript">
    $(function() { 
        $("#button").click(function() { 
            alert($("#checkbox").attr("checked"));
        });
    });
</script>

<input type="checkbox" name="checkbox" id="checkbox" checked><input type="button" id="button" value="Click Me">


//注意红色位置,如果默认checkbox为checked状态,测试会发现,把勾去掉也是只会输出"checked" , 表示不理解为什么 Jquery会这样

解决方法,还是用document.get获取吧:

<script>
function getcheckbox(){
    var test = document.getElementById("checkbox").checked;
    alert(test);
}
</script>
<input type="checkbox" name="checkbox" id="checkbox"><input type="button" id="button" value="Click Me" onclick="getcheckbox()">

//选中为”true”,取消选中为”false”

### 回答1: jquery 获取 checkbox 元素的选中状态,可以使用以下代码: ``` // 选中所有名为 "myCheckBox" 的 checkbox 元素 var myCheckBoxes = $('input[name="myCheckBox"]:checked'); // 遍历所有选中的 checkbox 元素 myCheckBoxes.each(function() { // 获取选中的 checkbox 元素的值 var value = $(this).val(); // 处理选中的值 // ... }); ``` 上述代码中,通过 `$()` 函数获取所有名为 `myCheckBox` 的 checkbox 元素,且已选中的元素。然后使用 `each()` 函数遍历选中的 checkbox 元素,获取其值并处理。其中,`:checked` 是用来过滤选中状态的伪类选择器。在 `input` 标签中使用 `name` 属性来标识 checkbox 元素。 ### 回答2: 在使用jQuery获取选中的checkbox时,可以使用以下几个方法: 1.使用prop()方法 在代码中使用prop方法来获取一个checkbox或者多个checkbox是否被选中。该方法可以获取一个或多个表单元素的属性值。通常,可以使用该方法来获取选中的checkbox的属性值。 //获取所有选中的checkbox var checkedValues = $('input:checkbox:checked').map(function() { return this.value; }).get(); //获取特定id的checkbox是否选中 if ($('#checkboxId').prop('checked')) { //执行操作 } 2.使用attr()方法 使用attr()方法来获取一个或多个checkbox元素的属性值,以判断是否被选中。如果需要判断多个checkbox值,可以循环遍历所有的checkbox元素。 //获取所有选中的checkbox var checkedValues = []; $("input[type='checkbox']").each(function() { if ($(this).attr('checked')) { checkedValues.push($(this).val()); //将所有选中的checkbox值加入数组中 } }); //获取特定id的checkbox是否选中 if ($('#checkboxId').attr('checked')) { //执行操作 } 3.使用is()方法 使用is()方法来找到所有选中的checkbox元素。这个方法比prop()方法和attr()方法都要简单,因为它只需要遍历所有的表单元素,找到选中的checkbox元素即可。 //获取所有选中的checkbox var checkedValues = []; $("input[type='checkbox']").each(function() { if ($(this).is(':checked')) { checkedValues.push($(this).val()); //将所有选中的checkbox值加入数组中 } }); //获取特定id的checkbox是否选中 if ($('#checkboxId').is(':checked')) { //执行操作 } 总之,使用jQuery获取checkbox选中的属性值非常简单,可以使用prop()方法、attr()方法或is()方法找到所有的选中的checkbox元素,并执行相应的操作。 ### 回答3: jQuery是一个非常流行的JavaScript库,它提供了适用于跨浏览器的JavaScript程序的快捷方式和方便的API。在网页中,checkbox是一种常用的HTML元素,用于选择一个或多个项目。当有多个checkbox时,我们通常需要用JavaScript获取选中的checkbox以便进行进一步的处理。 在使用jQuery获取选中的checkbox时,我们可以通过使用选定元素集合中的.filter()方法来筛选出所有选中的checkbox。代码如下: ``` $('input[type=checkbox]:checked').each(function() { // 处理选中的checkbox }); ``` 以上代码通过选择input元素中type为checkbox且被选中的元素来获取所有选中的checkbox。接下来使用.each()方法来遍历选中的checkbox集合并对每个元素进行处理。可以在.each()方法函数中访问选中的checkbox元素,进而对它们进行进一步的操作。 在处理多个checkbox时,还可以使用jQuery选择器来选择checkbox的父元素,然后使用.find()方法来查找选中的checkbox。例如: ``` $('#checkboxGroup').find('input[type=checkbox]:checked').each(function() { // 处理选中的checkbox }); ``` 以上代码首先选择id为“checkboxGroup”的父元素,然后查找所有选中的checkbox元素并对它们进行处理。这种方法可以让我们避免直接在HTML代码中书写JavaScript代码,提高了代码的可读性和维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值