如何迭代页面上的所有复选框?

问题描述:

如何使用JQuery遍历页面上的所有复选框?如何迭代页面上的所有复选框?

I.e.我有高于checkboxes ...

<div> 
<input checked="checked" type="checkbox" name="option_1" id="checkbox_1" value="1" />35 MM     
<input checked="checked" type="checkbox" name="option_2" id="checkbox_2" value="2" /> DIGITAL      
<input type="checkbox" name="option_3" id="checkbox_3" value="3" /> 3D DIGITAL 
</div> 

有我用

$('input[id^="checkbox_"]').each(function() { 

}); 

它是正确的吗?谢谢!

+0

假设你只** **希望有以“checkbox_”开头,然后是一个ID输入,该代码是正确。 – 2012-08-14 13:49:17

您可以使用此经过的复选框迭代:

$("input:checkbox").each(function() { 
    alert($(this).val()); 
    }); 

$('input[type="checkbox"]').each(function() { 
    ... 
}); 

jQuery的支持选择:checkbox这只是在页面上选择复选框,所以如果你想要的是做到这一点的最简单的方法在网页上的所有复选框:

$(":checkbox").each(function(index, element) { 
    // put your code here 
}); 

jQuery doc for :checked,他们建议这个选择器可能执行速度稍快:

$("input[type='checkbox']").each(function(index, element) { 
    // put your code here 
}); 

看起来不错,但您可以添加进一步的类型检查以确保其他控件类型与mataching id进来选择器。

$('input[type=checkbox][id^="checkbox_"]').each(function() { 

}); 

$("input[type='checkbox']").each(function(){ 
    var name = $(this).attr('name'); // grab name of original 
    var value = $(this).attr('value'); // grab value of original 
    var ischecked = $(this).is(":checked"); //check if checked 
}); 
+1

请不要使用.attr('checked'),请阅读这篇文章:http://api.jquery.com/prop/以了解原因。 – 2012-08-14 13:58:49

+0

是的,你的权利改为“是” – themis 2012-08-14 14:01:20

+0

好吧,我upvoted你的答案。 – 2012-08-14 14:21:21