近来要判断一个列表中check被先中的数量,怎么都不定。
下面列出来我使用过的办法。
1. attr遍历法
var str = 0;
var id = tag = '';
$("input[name='ids[]']").each(function() {
if($(this).attr('checked')=='checked') {
str ++;
}
});
本人使用Jquery1.9.1表示此方法无效。关于此遍历的办法,有几种方法,主要是$(this).attr('checked') == 什么的问题,有说是 true 有说是checked,这点好像根据jquery的版本会差异。各位自己试下。
2. Jquery选择length法
$("input[type='checkbox'][name='roleId'][checked=true]").length //动态得到处于选中的个数
$("input[type='checkbox'][name='roleId'][checked]").length // 动态得到处于选中的个数
$("input[type='checkbox'][name='roleId']checked").length //只是的到页面中含有checked的个数
此方法在网上找的,现样无并行。
3.is方法
var checkCount = 0;
$("input[name='ids[]']").each(function() {
//alert($(this).attr('checked'));
if($(this).is(':checked')){
checkCount ++;
}
});
alert(checkCount);
经过测试,在我的Chrome和Jquery1.9.1上第三种方法是可行的。
参考:http://stackoverflow.com/questions/8541141/jquery-checkbox-always-returns-undefined
================================================
Jquery获取checked选中个数 1.9.1